2016-06-13 27 views
0

這裏是我的設置:爲什麼'www。'URL-prefix會影響cURL是否可以抓取網頁內容?

$url1 = "www.gyngen.dk"; 
$url2 = "gyngen.dk"; 

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20); 
$result = curl_exec($curl); 
curl_close($curl); 

使用$url1將導致一個空字符串和$url2按預期正常工作。但是,爲什麼我的同事stackoverflowians,當涉及到「www。」的存在時,cURL非常微妙,當我(在我的經驗中)在瀏覽器中使用URL(firefox)時無關緊要。

在此先感謝!

+2

問題1,錯誤的引號。 –

+1

瀏覽器旨在供那些不太關心技術的人使用,但curl是程序員的工具:您應該能夠正確地格式化URL。瀏覽器通常會爲你提供谷歌瀏覽器,這是你真的不想在腳本中使用的東西。 –

+0

爲什麼人們低估了我的問題?我有一些有用的答案,所以我完全滿意,但我有點好奇,我應該如何以不同的方式提問我的問題? –

回答

0

www。裸露的域名是兩個獨立的域名。網頁瀏覽器有時會嘗試和模糊這種區別,以便不瞭解任何更好的人,並且如果在其中一個地址找不到頁面,它有時會嘗試另一個地址。實際上,這些領域顯然是他們自己的,捲曲並沒有試圖掩蓋這一點。

+0

任何關心解釋downvote? – MrSalmon

+1

它永遠不會'嘗試另一個'。您必須配置您的網站通過'www.'子域可訪問。 – Justinas

+0

不是我的失望,但它最有可能與您所說的部分有關「如果在其中一個地址找不到頁面,它有時會嘗試另一個地址」。瀏覽器不會嘗試其他地址,如果404給出。在大多數情況下,瀏覽器需要[重定向響應代碼之一](https://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx)作爲服務器的響應來切換您的網址。 – castis

3

cURL不遵循重定向,去www.gyngen.dk會使用重定向將您重定向到gyngen.dk。由於沒有重定向,cURL會收到空的網頁內容。

相關問題