9

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

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

<div>This is some <b>text

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

4

4 回答 4

11

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

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

于 2008-08-26T01:55:30.730 回答
6

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

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

于 2009-02-02T17:04:53.053 回答
3

现在内置的 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>
于 2010-11-29T11:47:18.827 回答
1

对于操纵 DOM,我认为您正在寻找的是this。我曾经从网络上解析 HTML 文档,它对我来说很好用。

于 2008-08-26T02:24:55.607 回答