PHP简单的HTML DOM解析器上有效的URL
返回false我想以下几点:PHP简单的HTML DOM解析器上有效的URL
$url = 'https://www.tripadvisor.es/Hotels-g187514-Madrid-Hotels.html'
$ta_html = file_get_html($url);
var_dump($ta_html);
返回false,这是工作和获取正确的HTML为:
$url = 'https://www.tripadvisor.es/Hotels-g294316-Lima_Lima_Region-Hotels.html#ACCOM_OVERVIEW'
我的第一个我以为它有一个重定向,但我用卷曲和它的200 OK检查了标题,在两种情况下看起来都是一样的。会发生什么?如何解决?
这似乎是这个问题的一个副本: Simple HTML DOM returning false这也是悬而未决
使用file_get_contents()
相反,对我的作品。
$url = "https://www.tripadvisor.es/Hotels-g187514-Madrid-Hotels.html";
file_put_contents("hello.html", file_get_contents($url));
file_get_html("Hello_html");
OP写道,它适用于另一个网址。这不是答案,也不是正确的解决方案 – gaganshera
我在示例中使用的网址,可以工作,当你没有测试时,不会说狗屎。 – getl0st
请再次阅读这个问题,这次是正确的。 – gaganshera
于是我找到了一个解决办法这样做:
$base = $url;
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $base);
curl_setopt($curl, CURLOPT_REFERER, $base);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$str = curl_exec($curl);
curl_close($curl);
$html = new simple_html_dom();
$html->load($str);
说实话我不知道为什么这个作品,什么是原来的问题,如果任何人都可以指出这一点我将不胜感激
看起来这是因为该检查的simple_html_dom.php
在file_get_html()
功能发生
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE)
{
return false;
}
这可能是内容的长度大于MAX_FILE_SIZE
你想从该页面中取消什么?我更喜欢使用'DOMDocument' php内置类。 –
我只是试验html简单的dom解析器。但我想知道为什么在同一个网站上看起来像两个同等的url一个工作,而另一个不是 – Aschab