Curl在没有更改Apache或PHP的情况下停止工作
似乎有点为难。据我所知,PHP或Apache没有改变,但是一个工作了近6个月的代码今天下午2点停止工作 代码是: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
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,预期功能将按预期工作。