在 PHP 中解析无效 HTML 的最佳方法

Posted

技术标签:

【中文标题】在 PHP 中解析无效 HTML 的最佳方法【英文标题】:Best way to parse an invalid HTML in PHP 【发布时间】:2011-04-06 03:04:07 【问题描述】:

有没有更好的方法来解析无效的 html,然后对其应用 Tidy?

旁注: 在某些情况下,您无法使用 Tidy。 也不建议使用正则表达式来解析 html。

【问题讨论】:

在您没有 Tidy 可用的情况下,您应该安装它。或者你一开始就不能使用损坏的 HTML。 你是认真的吗?至少有几次我无法做到这一点:来自需要解析的客户端的无效 html 代码,共享主机,没有安装 Tidy 的选项.. Best methods to parse HTML 的可能重复项 【参考方案1】:

我会尝试这样的事情:http://php.net/manual/en/domdocument.loadhtml.php

从那个页面:

该函数解析字符串源中包含的 HTML。与加载 XML 不同,加载 HTML 时不必格式正确。也可以静态调用此函数来加载和创建 DOMDocument 对象。

【讨论】:

似乎在两个或多个元素上将 HTML 对象加载到相同的 ID 值(尽管这可能来自 libxml)【参考方案2】:

SimpleHTMLDOM 比 PHP 的原生 DOM 函数更宽松。

【讨论】:

建议的第三方替代 SimpleHtmlDom 实际使用 DOM 而不是字符串解析:phpQuery、Zend_Dom、QueryPath 和 FluentDom。 @Gordon 这次你太快了 :) 他正在寻找解析损坏的 HTML。 使用libxml's HTML parser module时,所有基于DOM的解析器都应该能够很好地处理。

以上是关于在 PHP 中解析无效 HTML 的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中解析无效 HTML 的最佳方法

在 PHP 中解析无效 HTML 的最佳方法

无效格式xml的最佳PHP解析器[重复]

在 C# 中解析 html 的最佳方法是啥? [关闭]

在 C# 中解析 html 的最佳方法是啥? [关闭]

在谷歌应用程序脚本中解析 html 的最佳方法是啥