Python has this wonderful way of handling string substitutions using dictionaries
>>> 'The %(site)s site %(adj)s because it %(adj)s' % {'site':'Stackoverflow', 'adj':'rocks'}
'The Stackoverflow site rocks because it rocks'
I love this because you can specify a value once in the dictionary and then replace it all over the place in the string.
I've tried to achieve something to similar to this in PHP using various string replace functions but everything I've come up with feels awkward.
Does anybody have a nice clean way to do this kind of string substitution in PHP?
Edit
Here's the code from the sprintf page that I liked best.
<?php
function sprintf3($str, $vars, $char = '%')
{
$tmp = array();
foreach($vars as $k => $v)
{
$tmp[$char . $k . $char] = $v;
}
return str_replace(array_keys($tmp), array_values($tmp), $str);
}
echo sprintf3( 'The %site% site %adj% because it %adj%', array('site'=>'Stackoverflow', 'adj'=>'rocks'));
?>
Thanks Thomas!
Extra thanks to Marius. That solution is exactly what I was looking for.