谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌
谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌
谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌
<pre>
<ul class="first">
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
</ul>
</pre>
百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度
百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度
百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度
<pre>
<ul class="first">
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
</ul>
</pre>
分割线--------------------------------------------------
我想把上面的代码<pre>内的标签使用htmlspecialchars格式化
echo preg_replace('/<pre>(.*)<\/pre>/Us', '<pre>'.htmlspecialchars(${1}).'</pre>', $code);
这样写好像没问题啊!为什么不成功呢?
这个问题真的困扰了我好几天了,我也不知道哪里出了问题,还是没搞明白preg_replace这个函数的用法。希望懂的朋友指点一下!非常感谢!
谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌
谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌谷歌
<pre>
<ul class="first">
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
</ul>
</pre>
百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度
百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度
百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度百度
<pre>
<ul class="first">
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
<li><a href="#">菜单二</a></li>
</ul>
</pre>
分割线--------------------------------------------------
我想把上面的代码<pre>内的标签使用htmlspecialchars格式化
echo preg_replace('/<pre>(.*)<\/pre>/Us', '<pre>'.htmlspecialchars(${1}).'</pre>', $code);
这样写好像没问题啊!为什么不成功呢?
这个问题真的困扰了我好几天了,我也不知道哪里出了问题,还是没搞明白preg_replace这个函数的用法。希望懂的朋友指点一下!非常感谢!
注意红字部分,使用e修饰符才会触发回调函数。当然有替代函数preg_replace_callbackecho preg_replace('/<pre>(.*)<\/pre>/eUs', '"<pre>".htmlspecialchars("\\1")."</pre>"', $code);
//正确格式