目前我有这个:
function parse_string($string, $variables){
extract($variables);
return eval('return "'. addcslashes($string, '"') .'";');
}
所以我可以输入这个字符串:
'Hi {$name}, my name is {$own_name}'
与这个数组一起:
array('name' => 'John', 'own_name' => 'Tom')
然后回复:
'Hi John, my name is Tom'
我从来不喜欢这种eval()
方法,但它很有效,而且速度快(至少比正则表达式快)。
问题:PHP5中是否有更优雅的方法(比使用正则表达式更快)?
答案 0 :(得分:4)
foreach ($variables as $variable => $value) {
$string = str_replace('{$' . $variable . '}', $value, $string);
}