且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PHP中preg_place中的动态变量

更新时间: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)