我有一个模板,其中包含某些要替换为给定值的字段。
每个字段都有一个用大括号括起来的名称。例如: {address} 替换值包含在索引为名称的数组中。例如array('address'=>'101 Main Street', 'city’=>'New York')
我正在使用以下内容,并且效果很好(大多数情况下)
$template_new= preg_replace('/\{\?(\w+)\?\}/e', '$array["$1"]', $template);
问题是如果我有一个{bad_name}
不在数组中,我会收到以下错误:
注意:未定义的索引: /var/www/classes/library.php(860) 中的 xxx:第1行 的正则表达式代码
我的愿望是将这些留在原处而不改变它们。
我的第一个想法是替换$array["$1"]
为(isset($array["$1"])?$array["$1"]': '{'.$1.'}')
,但它没有用。
我也试过try/catch,但也没有用
请提供任何建议。谢谢