我正在寻找在 PHP 中操作 HTML 的好方法。例如,我目前遇到的问题是处理格式错误的 HTML。

我收到的输入看起来像这样:

<div>This is some <b>text

正如您所注意到的,HTML 缺少结束标记。我可以使用正则表达式或 XML 解析器来解决这个问题。然而,将来我可能必须进行其他 DOM 操作。我想知道是否有任何好的 PHP 库可以处理 DOM 操作,类似于 Javascript 处理 DOM 操作的方式。

有帮助吗?

解决方案

PHP 有 PECL 扩展,使您可以访问 HTML Tidy 的功能. 。Tidy 是一个非常强大的库,应该能够采用这样的代码并以智能方式关闭标签。

我用它来清理导入前分类广告系统发送给我的格式错误的 XML 和 HTML。

其他提示

我发现 PHP Simple HTML DOM 是迄今为止最有用、最直接的库。我想说比 PECL 更好。

我写过一篇文章 如何使用它来抓取 myspace 艺术家巡演日期 (只是一个例子。)这是一个链接 php 简单的 html dom 解析器。

现在内置的DOM库可以轻松解决这个问题。loadHTML 方法将接受格式错误的 XML,而 load 方法则不会。

$d = new DOMDocument;
$d->loadHTML('<div>This is some <b>text');
$d->saveHTML();

输出将是:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <body>
    <div>This is some <b>text</b></div>
  </body>
</html>

为了操纵 DOM 我认为你正在寻找的是 . 。我曾经从网络上解析 HTML 文档,它对我来说效果很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top