我正在尝试使用cURL获取目标网址。
<?php
$ch = curl_init('http://www.cnn.com');
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31");
curl_setopt($ch, CURLOPT_REFERER, "http://www.mydomain.com/");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
echo $lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
?>
上面的代码生成以下输出,并且它在我的本地服务器中正常工作。
输出:本地服务器中的“http://edition.cnn.com”和实际服务器中的“http://www.cnn.com”。
------------------------------------------------------
Server Detail
------------------------------------------------------
Local | Actual
|
PHP Version 5.3.13 | PHP Version 5.3.20
cURL Info 7.24.0 | cURL Info 7.15.5
Protocols:
dict, file, ftp, | telnet, dict,
ftps, gopher, | ldap, http,
http, https, | file, https, ftps
imap, imaps, ldap, | tftp,ftp,
pop3, pop3s, |
rtsp, scp, |
sftp, smtp, |
smtps, |
telnet, tftp |
-------------------------------------------------------
为什么实际服务器出现问题?
答案 0 :(得分:0)
为什么实际服务器出现问题?
我的猜测是CNN正在使用标题或IP来显示不同的内容。
尝试使用Firefox插件HTTP实时标头查看浏览器的功能,然后将其复制到CURL中。