В настоящее время у меня есть это:
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?