Kla*_*tos 1 php regex preg-replace
我有一个这样的文本模板:
$template = [FIRSTNAME] say hello to [NAME]
Run Code Online (Sandbox Code Playgroud)
我有一个用户数组
[user_name] => myname
[user_firstname] => myfirstname
Run Code Online (Sandbox Code Playgroud)
我想改变它,preg_replace所以我尝试了这个:
$replacement = '$user[user_${1}]';
$result['texte'] = preg_replace('/[(.*)]/', {$replacement}, $result['texte']);
Run Code Online (Sandbox Code Playgroud)
没有任何成功:(
/[(.*)]/没有逃脱[或],如果它做的话,基本上会匹配所有.使用/\[(.*?)\]/.此外,您需要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)
Run Code Online (Sandbox Code Playgroud)