我有这样的字符串:
$str = '<div> text echo <div class="code">echo "test!";</div> </div>';
如何echo
用font
标签替换?
例如 on out 必须是这样的字符串:
$str = '<div> text echo <div class="code"><font color="green">echo</font> "test!";</div> </div>';
我试过了
$str = preg_replace("/<div class='code'>(echo)<\/div>/Usi",'<font color="green">echo</font>',$str);
但没有意义,那我该怎么做呢?
更新所以似乎这是一个解决方案:
$str = '<div> text echo <div class="code">echo "test!"; echo "very test!";</div> </div>';
/*$str = preg_replace('/(<div class="code">.*?)(echo)(.*?<\/div>)/si',
'$1<font color="green">$2</font>$3', $str);*/
$str = preg_replace_callback(
'/(<div class="code")(.*?)(<\/div>)/si',
function ($matches) {
return $matches[1].str_replace('echo','<font color="green">echo</font>',$matches[2]).$matches[3];
},
$str);
echo $str;