【发布时间】:2015-11-11 10:46:25
【问题描述】:
如何使用原生 PHP DOM Parser 在网页中搜索和替换特定字符串(文本 + html 标签)?
例如,搜索
<p> <a href="google.com"> Check this site </a> </p>
该字符串位于 html 树内的某个位置。
我想找到它并用另一个字符串替换它。例如,
<span class="highligher"><p> <a href="google.com"> Check this site </a> </p></span>
请记住,<p> 或 <a> 节点没有 ID。可能有许多相同的节点,包含不同的文本。
我尝试了 str_replace,但由于复杂的 html 标记而失败,所以我现在求助于 HTML Parsers。
编辑:
要查找和替换的字符串可能包含各种 HTML 标记,如 div、标题、粗体等。因此,我正在寻找一种可以根据内容构建正则表达式或 DOM xpath 查询的解决方案正在搜索的字符串。
谢谢!
【问题讨论】:
-
使用 JavaScript 并向
<p>添加 id / class 不是更好吗? -
我无法控制正在解析的 HTML 文档,因此我无法添加任何属性。我读过 Simple HTML DOM,但是人们说它不如原生 PHP DOM Parser
-
getElementsByTagName(..),然后用getAttribute(..)过滤? -
这可以返回 20+ 个不同的
元素,你如何识别正确的并替换它?
标签: php html parsing dom domparser