我有一个包含一组模板的表。这些模板有占位符,需要在运行时替换给定键值对数组。这是我进行替换的代码:
function replace_placeholders(&$input_values) {
$result = execute_pdo_query("SELECT name,value FROM templates");
foreach($result as $currow) {
$varname = $currow[name];
$varvalue = $currow['value'];
foreach($input_values as $key => $value) {
$key = '{'.strtolower($key).'}';
$varvalue = str_replace($key,trim($value),$varvalue);
}
$input_values[$varname] = $varvalue;
}
}
问题是有大量的模板和许多键值对。所以,这个嵌套循环被执行了很多次,几乎占用了半秒。有没有办法优化这个替换?我已经搜索了优化,但大多数人说这str_replace
是可以做到的最好的。