在 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】:SimpleHTMLDOM 比 php 的原生 DOM 函数更宽松。
【讨论】:
建议的第三方替代 SimpleHtmlDom 实际使用 DOM 而不是字符串解析:phpQuery、Zend_Dom、QueryPath 和 FluentDom。 @Gordon 这次你太快了 :) 他正在寻找解析损坏的 HTML。 使用libxml's HTML parser module时,所有基于DOM的解析器都应该能够很好地处理。【参考方案2】:我会尝试这样的事情:http://php.net/manual/en/domdocument.loadhtml.php
从那个页面:
该函数解析字符串源中包含的 HTML。与加载 XML 不同,加载 HTML 时不必格式正确。也可以静态调用此函数来加载和创建 DOMDocument 对象。
【讨论】:
似乎在两个或多个元素上将 HTML 对象加载到相同的 ID 值(尽管这可能来自 libxml)以上是关于在 PHP 中解析无效 HTML 的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章