2017-04-22 96 views
0

返回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這也是懸而未決

+0

你想從該頁面中取消什麼?我更喜歡使用'DOMDocument' php內置類。 –

+0

我只是試驗html簡單的dom解析器。但我想知道爲什麼在同一個網站上看起來像兩個同等的url一個工作,而另一個不是 – Aschab

回答

-1

使用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"); 
+0

OP寫道,它適用於另一個網址。這不是答案,也不是正確的解決方案 – gaganshera

+0

我在示例中使用的網址,可以工作,當你沒有測試時,不會說狗屎。 – getl0st

+0

請再次閱讀這個問題,這次是正確的。 – gaganshera

0

於是我找到了一個解決辦法這樣做:

$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); 

說實話我不知道爲什麼這個作品,什麼是原來的問題,如果任何人都可以指出這一點我將不勝感激

0

看起來這是因爲該檢查的simple_html_dom.phpfile_get_html()功能發生

if (empty($contents) || strlen($contents) > MAX_FILE_SIZE) 
{ 
    return false; 
} 

這可能是內容的長度大於MAX_FILE_SIZE

相關問題