我是PHP的新手,并且有一个包含HTML页面的String。我需要在任何 HR HTML标记之前和之后插入一些自定义代码。例如:
<html>
....
<p>INSERT HERE</p>
<hr class="pagebreak">
<p>INSERT HERE</p>
<p>INSERT HERE</p>
<hr class="pagebreak">
<p>INSERT HERE</p>
....
</html>
我尝试了几种 preg_replace 和 substr_replace 的组合,但是我仍然无法在我需要的所有地方插入自定义代码。 有人可以帮我解决这个难题吗? 附:我需要使用PHP标准字符串函数 - 我不能使用任何HTML解析库,因为我无法控制服务器上可用的PHP库。 非常感谢 琳达
答案 0 :(得分:2)
所有你需要得到的是良好的正则表达式,假设你设法让它至少部分工作,你可能表达不好(例子会有所帮助)。我为您测试了此代码,它应该适用于您的所有<hr>
:
$newtext=preg_replace("#(<hr[^>]*>)#s",$yourprefix."\${1}".$yoursuffix,$oldtext);
变量oldtext是你以前拥有的,新文本是你想要的,前缀和后缀是你想要在hr标签附近添加的
答案 1 :(得分:1)
$before = '<p>Before the hr tag</p>';
$after = '<p>After the hr tag</p>';
$str = preg_replace('/(<hr(.*?)>)/i',$before.'$1'.$after,$str);