alt*_*ids 1 php regex preg-replace
我想替换变量中的所有:first_name
事件$body
,$first_name
但我坚持使用正则表达式部分.正则表达式不起作用.当我回复身体时,原始字符串被打印出来.什么是正确的正则表达式?
$first_name = "Joe";
$body = "Hi :first_name. Have a nice day :first_name!";
$regex = "/\b:first_name\b/";
$body = preg_replace($regex, $first_name, $body);
echo $body;
Run Code Online (Sandbox Code Playgroud)
由于您在评论中询问,这是更具可扩展性,应该更容易.使用str_replace
和数组:
$array[':first_name'] = "Joe";
$array[':last_name'] = "Smith";
$body = str_replace(array_keys($array), $array, $body);
Run Code Online (Sandbox Code Playgroud)
另一种选择strtr
:
$body = strtr($body, $array);
Run Code Online (Sandbox Code Playgroud)