PHP在字符串之前和之后插入一些文本

时间:2012-03-18 16:47:14

标签: php string insert

我是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库。 非常感谢 琳达

2 个答案:

答案 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);