微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 用于替换不在HTML标签内的内容的正则表达式

我有一个功能,通过扫描博客条目,新闻和某些核心关键字的其他项目,帮助链接我的网站中的页面.然后,它会使用指向相应页面链接替换这些关键字.

我遇到了一个问题,其中一些不应该用链接替换的单词.例如,我的一些HTML表中有一个摘要标记,其中包含表内容的小摘要.例如,我可能有一个看起来像这样的标签

<table width="500" cellspacing="0" cellpadding="4" border="0" summary="This table contains a list of all car parts in inventory along with their corresponding prices">
...
</table>

我的功能错误地用链接替换了像“汽车零件”这样的关键字或短语.我如何构造我的替换正则表达式,在这种情况下不替换它,但如果它出现在段落中,甚至在HTML表格的单元格内,则替换它.

在此先感谢您的任何帮助和指导!

编辑:只是为了澄清,我正在使用PHP来呈现我的页面.在将内容作为HTML输出页面之前,我正在使用str_replace().我希望能够用ereg_replace()替换它,这样我只有在满足某些条件时(即如上所述)才替换内容.对不起,如果这引起任何混乱!

解决方法:

Don’t use regexes to parse HTML.使用PHP DOM:

$DOM = new DOMDocument;
$DOM->loadHTML($str); // Your HTML

//get all tds
$cells = $DOM->getElementsByTagName('td');

// Do stuff to the cells

//get all paragraphs
$paragraphs = $DOM->getElementsByTagName('p');

// Do stuff to the paragraphs

// Etc...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐