テンプレートのセットを含むテーブルがあります。これらのテンプレートには、キーと値のペアの配列を指定して、実行時に置き換える必要があるプレースホルダーがあります。置換を行うための私のコードは次のとおりです。
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;
}
}
問題は、多数のテンプレートと多くのキーと値のペアがあることです。したがって、このネストされたループは何度も実行され、ほぼ 0.5 秒かかります。この置換を最適化する方法はありますか? 私は最適化を探しましたが、ほとんどの場合、それstr_replace
が最善の方法であると言われています。