我在加载包含空字节的HTML方面遇到了问题,我应用了错误修复程序,如下所示:PHP DOM loadHTML() method unusual warning
问题是,现在,我在那个问题上做了任何查询"修复" HTML根本不会提供任何结果。
这就是我的所作所为:
$opts = array('http' => array('header' => 'Accept-Charset: UTF-8, *;q=0'));
$context = stream_context_create($opts);
$html=file_get_contents('http://actualidad.rt.com/ultima_hora',false,$context);
$html=mb_convert_encoding($html, 'UTF-8', mb_detect_encoding($html, 'UTF-8, ISO-8859-1', true));
$html=str_replace("\0", '', $html); //Avoid PHP BUG https://stackoverflow.com/questions/30925533/php-dom-loadhtml-method-unusual-warning
$this->dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath=new DOMXPath($this->dom);
$COUNTDIVS=$xpath->query('//div');
$ COUNTDIVS没有元素,而真正的HTML有一大堆div标签。
并且,代码在错误不适用的网站上运行良好。
我该如何解决?
非常感谢。