在PHP中动态修改HTML网页的内容

时间:2010-04-15 13:13:07

标签: php html dom html-parsing

我想加载HTML文档并在PHP中修改它的文本。例如,如果我有这样的文档:

<html>
<head><title>Test - Example.com</title></head>
<body>
<p><a href="http://www.example.com">Link number 1: Example.com</a></p>
<p>Link number 2: Example.com - some random text</p>
</body>
</html>

我想在第二段添加一个活动链接()。但我不想触摸Example.com字符串出现的其他位置,如第一段或文档的标题。所以我不能使用正则表达式,因为我需要考虑文档的结构。关于如何解决这个问题的任何想法?我将收到的HTML文档可能是实时网页,因此它们可能包含错误,JavaScript代码等。

1 个答案:

答案 0 :(得分:1)

“正确”的方法是通过PHP的DOM对象,它可以导入HTML,之后你可以使用XPath深入到你想要的确切链接。当然,DOM对于无效标记非常挑剔,并且可以解决浏览器处理得非常简单的错误。在通过DOM往返内容之前,您可能需要按摩输入以修复最糟糕的错误。

我发现的最糟糕的停止在DOM的跟踪错误是有多个html和/或正文块(例如,一个愚蠢的服务器在实际页面内容之前插入一个自包含的&lt; html&gt;块)。