我试图在PHP网站上运行一个简单的cURL函数,但由于某种原因,该请求不起作用。
我已经在不同的服务器上测试了代码并且工作得很好。 两个站点使用相同的cURL版本(7.19.7),相同的cURL设置。两者都使用APACHE 2.2。
该功能运行的站点使用PHP 5.6
函数不起作用的站点使用PHP 5.5.23
但我真的不认为这是PHP版本问题,而是服务器问题。 但是,我不知道该寻找什么,调试它,看看为什么它不起作用。我只是坚持这个。
我的代码是:
function curlGet($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 25);
$result = curl_exec($curl);
if ( $result === false ){
return 'COULD NOT CONNECT';
}else{
return $result;
}
}
echo curlGet('http://www.google.com');
答案 0 :(得分:1)
php5-curl的一些发行版(如Debian6 iirc)带有默认的useragent字符串,有些则没有。我想在目标服务器上阻止了useragentstring-less请求。许多网站出于某种原因这样做(我不知道为什么)。如果这是你的问题,解决方案是CURLOPT_USERAGENT ..无论如何,记录来自两个客户端的整个封面,找出请求中的差异,并将它们排除在外。 (Fiddler Proxy非常适合这种情况。甚至允许使用https SSL / TLS通过假SSL证书进行MITM攻击:D)