提问人:Eldila 提问时间:8/26/2008 最后编辑:Ijas AmeenudeenEldila 更新时间:1/18/2019 访问量:8835
PHP 中的 DOM 操作
DOM manipulation in PHP
问:
我正在寻找在PHP中操作HTML的好方法。例如,我目前遇到的问题是处理格式错误的 HTML。
我收到的输入如下所示:
<div>This is some <b>text
正如你所注意到的,HTML 缺少结束标记。我可以使用正则表达式或XML解析器来解决这个问题。但是,将来我可能不得不进行其他 DOM 操作。我想知道是否有任何好的 PHP 库可以处理 DOM 操作,类似于 Javascript 处理 DOM 操作的方式。
答:
11赞
ceejayoz
8/26/2008
#1
PHP 有一个 PECL 扩展,可让您访问 HTML Tidy 的功能。Tidy 是一个非常强大的库,它应该能够接受这样的代码并以智能的方式关闭标签。
我用它来清理分类广告系统在导入之前发送给我的格式错误的 XML 和 HTML。
1赞
Juan
8/26/2008
#2
对于操作 DOM,我认为您正在寻找的是这个。我曾经从网络上解析 HTML 文档,它对我来说效果很好。
6赞
bedlam
2/3/2009
#3
我发现 PHP Simple HTML DOM 是迄今为止最有用和最直接的库。我会说比 PECL 更好。
我写了一篇关于如何使用它来抓取myspace艺术家巡演日期的文章(只是一个例子。这是 php 简单 html dom 解析器的链接。
3赞
Decko
11/29/2010
#4
现在内置的 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>
评论