preg_replace_callback() 四处走走
preg_replace_callback() walk around
想做这样的事情:
$str = '<a>lalala</a>';
echo preg_replace('~<a>(.*)</a>~i','<a>'.str_replace('la','mi',"").'</a>',$str);
所以会 return:
<a>mimimi</a>
但无法使用preg_replace_callback()
功能。有什么简单的想法吗?
您可以使用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;
想做这样的事情:
$str = '<a>lalala</a>';
echo preg_replace('~<a>(.*)</a>~i','<a>'.str_replace('la','mi',"").'</a>',$str);
所以会 return:
<a>mimimi</a>
但无法使用preg_replace_callback()
功能。有什么简单的想法吗?
您可以使用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;