更新时间:2023-02-19 12:52:42
/[(.*)]/
不会转义[
或]
,如果转义,则基本上与所有匹配。使用/[(.*?)]/
。此外,您需要strtolower
匹配的内部值。
$template = "[FIRSTNAME] say hello to [NAME]";
$replacements = array(
'user_name' => 'myname',
'user_firstname' => 'myfirstname',
);
$result['texte'] = preg_replace_callback('/[(.*?)]/', function ($match)
use ($replacements) {
return $replacements["user_" . strtolower($match[1])];
}, $template)