PHP中的DOM操作
时间:2020-03-05 18:43:06 来源:igfitidea点击:
我正在寻找在PHP中处理HTML的好方法。例如,我目前遇到的问题是处理格式错误的html。
我收到的输入看起来像这样:
<div>This is some <b>text
如我们所见,该html缺少结束标记。我可以使用正则表达式或者XML解析器来解决此问题。但是,将来可能我将不得不执行其他DOM操作。我想知道是否有任何良好的PHP库都可以处理DOM操作,类似于Javascript处理DOM操作的方式。
解决方案
回答
PHP具有PECL扩展名,可让我们访问HTML Tidy的功能。 Tidy是一个非常强大的库,应该能够接收这样的代码并以一种智能的方式关闭标签。
在导入之前,我用它来清理分类广告系统发送给我的格式错误的XML和HTML。
回答
对于操纵DOM,我认为我们正在寻找的是这个。我曾经解析过Web上的HTML文档,它对我来说很好用。
回答
我发现PHP简单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>