Curl在没有更改Apache或PHP的情况下停止工作

时间:2013-11-01 23:48:18

标签: php apache curl

似乎有点困境。据我所知,没有改变PHP或Apache,但是已经工作了近6个月的代码今天下午2点停止工作。

代码是:

function ls_record($prospectid,$campid){
            $api_post = "method=NewProspect&prospect_id=".$prospectid."&campaign_id=".$campid;

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
            curl_setopt($ch, CURLOPT_HEADER, FALSE);
            curl_setopt($ch, CURLOPT_POST, TRUE);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $api_post);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($ch, CURLOPT_URL, "http://XXXXX/XXXXXX/store.php");
            $x = print_r(curl_exec($ch), TRUE);
            return $x;
    }

返回NULL, I tried using file_get_contents()which also returns NULL`。我检查Apache错误日志,什么也看不见......我需要一些帮助。

3 个答案:

答案 0 :(得分:0)

您是否可以访问服务器的命令行?可能是目的地以某种方式阻止了你。

如果您有命令行权限,请尝试使用

wget http://XXXXX/XXXXXX/store.php

至少应该返回一些东西(如果不是标题)

答案 1 :(得分:0)

使用curl_getinfo来检查你的curl执行状态,也许你试图从中提取内容的服务器需要你的curl来设置用户代理,一些站点检查用户代理来阻止不需要的curl访问。

下面是我用来将我的curl伪装成桌面Chrome浏览器的用户代理。

curl_setopt($ch,CURLOPT_USERAGENT,' Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36');

答案 2 :(得分:0)

由于网速较低,我在服务器上遇到同样的问题。 Internet速度下降一段时间并且curl需要花费很多时间来执行,因此它会返回超时错误。几分钟后,它在没有任何服务器更改的情况下正常工作。