PHP在字符串之前和之后插入一些文本
我对PHP很新,并且有一个包含HTML页面的字符串。我需要插入一些自定义代码之前和之后的任何HR HTML标记。例如:PHP在字符串之前和之后插入一些文本
<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的几种组合,但我仍然无法管理,我需要所有的地方插入自定义代码。 任何人都可以帮助我解决这个难题? P.s.我需要使用PHP标准字符串函数 - 我无法使用任何HTML解析库,因为我无法控制服务器上可用的PHP库。 非常感谢 琳达
所有你需要得到的是良好的正则表达式,假设你设法得到它至少部分地工作,你propably有坏的表达(例如将帮助)。我测试此代码对你应该在你的所有<hr>
的工作:
$newtext=preg_replace("#(<hr[^>]*>)#s",$yourprefix."\${1}".$yoursuffix,$oldtext);
变量oldtext是你有过什么,新的文本是你想要的,和前缀和后缀是要围绕小时加什么标签
$before = '<p>Before the hr tag</p>';
$after = '<p>After the hr tag</p>';
$str = preg_replace('/(<hr(.*?)>)/i',$before.'$1'.$after,$str);
谢谢你的建议inhan! – 2012-03-18 18:13:56
不客气。 – inhan 2012-03-18 22:08:04
非常感谢您,您的解决方案和inhan工作人员都非常完美。对不起,我刚刚构建了我的个人资料,因此我无法为您的回复添加任何分数:-( – 2012-03-18 18:13:38
没问题,至少你有解决方案,只需注意差异,即使'
'需要多行,大小写不敏感,所以它不会为'
'工作,如果你想改变它,只需把'#i'代替 – Kyborek 2012-03-18 19:41:57