为什么'www。'网址前缀会影响cURL是否可以抓取网页内容?

时间:2016-06-13 15:29:32

标签: php 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是如此微妙,当它(根据我的经验)在我的浏览器(firefox)中使用URL时无关紧要。

提前致谢!

3 个答案:

答案 0 :(得分:3)

cURL不遵循重定向,转到www.gyngen.dk会使用重定向将您重定向到gyngen.dk。由于没有重定向,因此cURL会收到空的网页内容。

答案 1 :(得分:2)

http://www.gyngen.dk重定向到http://gyngen.dk

您的浏览器会透明地遵循重定向。

PHP / cURL,您的设置,没有。 This question explains how to change that

答案 2 :(得分:0)

www。和裸域是两个独立的域。 Web浏览器有时会为那些不了解更好的人尝试掩盖这种差异,如果在其中一个地址找不到某个页面,它有时会尝试另一个。实际上,这些域名显然是他们自己的,而卷曲并没有试图隐藏这一点。