ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

curl无输出返回空白或者null问题解决

2021-07-12 14:02:43  阅读:269  来源: 互联网

标签:ch setopt url 空白 curl null data CURLOPT


curl无输出返回空白或者null问题解决

如果发现标题类似问题,很有可能是因为ssl证书问题导致只需要在curl方法中加入以下代码即可:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//禁止 cURL 验证对等证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//是否检测服务器的域名与证书上的是否一致
  • 赠送个比较全的curl代码
/**
 * CURL请求函数:支持POST及基本header头信息定义

 * @param [api_url:目标url | post_data:post参数 | header:头信息数组 | referer_url:来源url]
 * @return [code:状态码(200执行成功、400执行异常) | data:数据]
 */
function curl_request($api_url, $post_data = [], $header = [], $referer_url = ''){    
    $ch = curl_init();//初始化CURL句柄
    curl_setopt( $ch, CURLOPT_URL, $api_url);

    /**配置返回信息**/
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);//获取的信息以文件流的形式返回,不直接输出
    curl_setopt( $ch, CURLOPT_HEADER, 0);//不返回header部分

    /**配置超时**/
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10);//连接前等待时间,0不等待
    curl_setopt( $ch, CURLOPT_TIMEOUT, 5);//连接后等待时间,0不等待。如下载mp3

    /**配置页面重定向**/
    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);//跟踪爬取重定向页面
    curl_setopt( $ch, CURLOPT_MAXREDIRS, 10);//指定最多的HTTP重定向的数量
    curl_setopt( $ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer

    /**配置Header、请求头、协议信息**/
    curl_setopt( $ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt( $ch, CURLOPT_ENCODING, "");//Accept-Encoding编码,支持"identity"/"deflate"/"gzip",空支持所有编码
    curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)" );//模拟浏览器头信息
    $referer_url && curl_setopt( $ch, CURLOPT_REFERER, $referer_url);//伪造来源地址
    //curl_setopt( $ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );    //设置curl使用的HTTP协议

    /**配置POST请求**/
    if($post_data && is_array($post_data)){
        curl_setopt( $ch, CURLOPT_POST, 1 );//支持post提交数据
        curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($post_data));//
    }    

    /**禁止证书验证防止curl输出空白**/
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//禁止 cURL 验证对等证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//是否检测服务器的域名与证书上的是否一致

    $code = 200; //执行成功
    $data = curl_exec( $ch );
    //捕抓异常
    if (curl_errno($ch)) {
        $code = 400; //执行异常
        $data = curl_error($ch);
    }
    curl_close( $ch );    

    return ['code' => $code, 'data' => $data];
}

标签:ch,setopt,url,空白,curl,null,data,CURLOPT
来源: https://blog.csdn.net/qq_42958118/article/details/118673328

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有