cURL有时不工作并且给出空的结果

时间:2015-06-05 12:09:15

标签: php curl

我使用cURL从其他网站获取数据。有时它显示数据,有时显示空结果

这是我的代码


    function get_data($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        $agent=$_SERVER["HTTP_USER_AGENT"];
        curl_setopt($ch,CURLOPT_USERAGENT, $agent); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
         curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);

        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }
    $returned_content = get_data('www.example.com');
    echo $returned_content;

5 个答案:

答案 0 :(得分:3)

可能你从curl_init调用太多连接到一个IP地址,所以服务器阻止连接并导致开/关错误。

答案 1 :(得分:1)

没有收到任何内容可能是由于一个或多个原因造成的,你需要找出哪些内容。

  1. 在执行转移后,在代码中使用curl_error($ch),以查看curl是否告诉您有关问题的信息。

  2. 调查响应标头。 HTTP传输可以成功,不会返回任何错误,但可能只响应HTTP标头而根本没有响应。然后,HTTP标头可能包含有关原因的线索。也许它是您应该遵循的重定向,也许它需要HTTP身份验证,或者服务器可能指示临时服务器故障。

答案 2 :(得分:0)

Curl in PHP returns null on AWS EC2 instance

我有类似的问题,我通过确保PHP5和Apache2文件夹中的php.ini文件中的版本和设置相同来修复它。如果不是那么Apache2尝试执行php.ini设置中设置的版本。还要确保安装了PHP5-libcurl。它也很重要。

答案 3 :(得分:0)

间歇性故障可能是由于DNS服务器不稳定造成的,即使不是这样,您仍然可以从使用Google的DNS服务器中受益。 请参阅:https://developers.google.com/speed/public-dns/docs/using

答案 4 :(得分:0)

您可以使用' wget'使用shell访问此内容..

function wget($url){

    //get contnet with wget since some sites are not allowed with curl or file_get_content requests

    $content=`wget -O - $url`;

    return $content;
}