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

Curl在没有更改Apache或PHP的情况下停止工作,php,apache,curl,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

似乎有点为难。据我所知,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,我尝试使用
file\u get\u contents()
,它也返回
NULL`。我检查了Apache错误日志,什么也没看到……我需要一些帮助。

您有权访问服务器的命令行吗?可能是目的地以某种方式阻挡了你

如果您有命令行访问权限,请尝试以下操作

wget http://XXXXX/XXXXXX/store.php
这至少应该返回一些东西(如果不是标题)

用于检查您的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');

我在服务器上也面临同样的问题,因为网速很低。互联网速度下降了一段时间,执行curl需要很多时间,因此返回超时错误。几分钟后,它可以正常工作,服务器上没有任何更改。

在这种情况下,它正在卷曲的文件实际上在其自身上。如果我从浏览器转到URL,预期功能将按预期工作。