如何在str_replace()的replace参数中重用搜索参数的键值?

时间:2014-04-15 21:28:36

标签: php str-replace

在replace参数中重用search参数的键值的语法是什么,例如

$key = array($value1, $value2, …);
echo str_replace($key, "<span class='key'>$key</span>", $content);

上面将返回一个数组而不是一个数组项。

2 个答案:

答案 0 :(得分:0)

使用preg_replace

$key = array('/a/', '/b/');
echo preg_replace($key, '<span class="key">$0</span>', 'a b');

答案 1 :(得分:0)

您也可以使用preg_replace_callback。 Str replace不接受替换字符串中的参数。

$key = array($value1, $value2, …);
$regex = addslashes(implode('|', $key));
$content = preg_replace_callback(
  "/$regex/",
  function ($matches) {
    return '<span class="key">'.$matches[0].'</span>';
  },
  $content
);
如果你可以在数组中创建它自己的正则表达式,那么

bitWorking有一个更好的答案。