想做这样的事情:
$str = '<a>lalala</a>';
echo preg_replace('~<a>(.*)</a>~i','<a>'.str_replace('la','mi',"$1").'</a>',$str);
所以它会回来:
<a>mimimi</a>
但不能使用preg_replace_callback()
功能。有什么简单的想法吗?
答案 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;