首页 文章

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

提问于
浏览
6

我使用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

    Curl in PHP returns null on AWS EC2 instance

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

  • 0

    可能是间歇性故障是由于片状DNS服务器造成的,即使它还没有从使用谷歌的DNS服务器中受益..参见:https://developers.google.com/speed/public-dns/docs/using

  • 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;
    }
    
  • 3

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

  • 1

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

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

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

相关问题