为什么curl在本地工作但在我的网络托管中失败?

时间:2016-03-07 12:58:04

标签: php json curl web-hosting

我有这段代码:

    $jsonurl = "http://ipinfo.io";
    $ch = curl_init($jsonurl);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $predata = curl_exec($ch);
    var_dump(curl_error($ch));
    curl_close($ch);       
    $data = json_decode($predata, true);

它在本地运行良好,但当我将其上传到我的网络托管时,我有:

string(20) "connect() timed out!" 
我的网站托管中的phpinfo说:

URL support enabled
cURL Information    libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2

您能否提供有关如何搜索问题所在的线索?

谢谢!

1 个答案:

答案 0 :(得分:0)

不确定但是,也许你的ip将被阻止远程服务器!

或者您需要更多时间,请尝试添加此

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 400);

代码

注意:CURLOPT_CONNECTTIMEOUT设置为零,没有超时

  

CURLOPT_TIMEOUT

     

允许cURL函数执行的最大秒数。

     

CURLOPT_CONNECTTIMEOUT

     

尝试连接时等待的秒数。使用0无限期等待。

希望这些帮助