永发信息网

php curl采集放到服务器有时可以采到有时采不到

答案:1  悬赏:20  手机版
解决时间 2021-03-11 04:25
如题。
程序已经写好了。本地的成功率是100%。
放到lnmp环境上成功率只有10%。刷10下有一次可以采集成功。
关键是我采集百度本地和服务器上都是100%成功的,换成顶点XS就不行。
下面是代码。哪位大神帮忙看看,我现在有点怀疑是不是服务器环境的问题。

function curl($url,$params = array(),$header = array()){
if(empty($url)) return $url;

if(empty($header)){
//默认一个header
$header = C('HEADER_COMMON');
}
if(isset($params['is_demo'])){
//print_r($header);exit;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);//请求url地址

curl_setopt($curl, CURLOPT_HTTPHEADER , $header ); //构造IP

if(!empty($params) && count($params) > 0){
curl_setopt($curl, CURLOPT_POST, true);

//Request Payload格式数据
if(isset($params['is_json']) && $params['is_json'] === true){
unset($params['is_json']);
$params = json_encode($params);
}else{
$params = http_build_query($params);
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
}

//curl_setopt($curl, CURLOPT_HEADER, true);//是否返回响应头信息
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//是否将结果返回
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);//是否重定向
//curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 只信任CA颁布的证书
//curl_setopt($curl, CURLOPT_CAINFO, $cacert); // CA根证书(用来验证的网站证书是否是CA颁布)
//curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 检查证书中是否设置域名,并且是否与提供的主机名匹配
// 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
//curl_setopt($curl, CURLOPT_HTTPHEADER, array("Expect: "));
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);//用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;
curl_setopt($curl, CURLOPT_TIMEOUT, 30);//用来告诉成功PHP脚本,从服务器接收缓冲完成前需要等待多长时间。如果目标是个巨大的文件,生成内容速度过慢或者链路速度过慢,这个参数就会很有用。
// 自动设置Referer
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
//curl_setopt($curl, CURLOPT_COOKIEJAR, "D:\phpStudy\WWW\cj\cooBE66.tmp");// //写入cookie信息
//setcookie('cookie_jar', $cookie_jar); //保存cookie路径
$data = curl_exec($curl); //执行
curl_close($curl);
return $data;
}
最佳答案


在curl_close($curl);前面加上$error = curl_error($curl);
然后打印看看有没有报错信息。

另外可以在当前文件最前面加入
ini_set('display_errors','on');
error_reporting(E_ALL);
看看运行有没有什么错误提示。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
会计上所讲的资本包括实收资本、资本公积两部
请问,为什么我白天进去时还好的晚上老是黑屏
神奇女侠预告里面有个背景音乐,一个男的唱的
央视二套节目的女子学院为什么在网上搜不见?
麻子仁丸的功用是A.养阴清热,润肠通便B.温肾
骑马与砍杀玩家一开始会诞生在哪个国家
周家湾天主堂在哪里啊,我有事要去这个地方
才检查出尿酸408,用不用吃痛风定片预
三国问题:像街亭这样重要的地方,在历史上不
8角+4分=()角()=()分
大众速腾忘把车钥匙关在后备箱中问有什么办法
鸡蛋羹里面放盐、味精和酱油还会有营养吗
日语,迷死他是什么意思啊?
小马综合批发部在哪里啊,我有事要去这个地方
美团怎么订蛋糕取蛋糕
推荐资讯
mugo kibiru
60岁以上的老年人的用药剂量是成年人剂量的A.
湖南有什么好旅游的地方要冬天能去的
接吻后,她说这是最后一次见面,说明她对我真
我36岁,手臂上长了很多褐色小斑点,开始是红色
一年级填空题如(动听的)书,(?)本
相关与回归分析的主要内容包括哪些方面?
木工方木多片锯在使用过程中遇见的有哪些问题
第一次带女朋友见父母应该给多少钱的红包
单选题下列化合物中,既有离子键,又有非极性
楷书字帖谁的好
美瞳怎么戴,怎么取下来,需要消毒吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?