PHP解析无效的HTML
我试图解析一些HTML,是不是我的服务器PHP解析无效的HTML
$dom = new DOMDocument();
$dom->loadHTMLfile("http://www.some-site.org/page.aspx");
echo $dom->getElementById('his_id')->item(0);
上,但PHP返回一个错误,像ID his_id already defined in http://www.some-site.org/page.aspx, line: 33
。我认为这是因为DOMDocument正在处理无效的html。那么,即使无效,我如何解析它?
你应该运行HTML Tidy来清理它,然后解析它。
$html = file_get_contents('http://www.some-site.org/page.aspx');
$config = array(
'clean' => 'yes',
'output-html' => 'yes',
);
$tidy = tidy_parse_string($html, $config, 'utf8');
$tidy->cleanRepair();
$dom = new DOMDocument;
$dom->loadHTML($tidy);
看到这个list of options。
阅读文档,我看到一个$dom->strictErrorChecking
默认为TRUE。如果您设置$dom->strictErrorChecking = false
,会发生什么情况?
仍然是同样的问题 – kmunky 2010-04-24 01:26:18
我有同样的问题。一个礼物? – 2010-07-29 10:35:14
看一看:?libxml_use_internal_errors()
如果您只是要推荐一个链接,请在问题下作为评论,而不是张贴为答案。 – mickmackusa 2018-01-28 13:37:37
整洁不适用于我:( – kmunky 2010-04-24 01:32:24
@kmunky为什么没有整理你SOL,基本上 – cletus 2010-04-24 01:59:58
我真的不知道为什么,我会联系我的托管服务提供商... – kmunky 2010-04-24 11:21:57