preg_replace_callback()走来走去

时间:2018-04-01 14:50:03

标签: php preg-replace

想做这样的事情:

$str = '<a>lalala</a>';
echo preg_replace('~<a>(.*)</a>~i','<a>'.str_replace('la','mi',"$1").'</a>',$str);

所以它会回来:

<a>mimimi</a>

但不能使用preg_replace_callback()功能。有什么简单的想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback()进行替换中的特定操作:

$str = '<a>lalala</a>';
echo preg_replace_callback('~<a>(.*)</a>~i',function($matches){
  return '<a>'.str_replace('la','mi',$matches[1]).'</a>';
},$str);

输出:

<a>mimimi</a>

preg_match()

$str = '<a>lalala</a>';
if (preg_match('~<a>(.*)</a>~i', $str, $matches)) {
  $str = '<a>'.str_replace('la','mi',$matches[1]).'</a>';
};
echo $str;