像这样的错误,是比较懵逼的。
这时可以使用 curl_error 返回错误信息进行查找,比如以下代码:

$response = curl_exec($ch);
$error = curl_error($ch)
var_dump($error);exit(0);
return $response;

记住执行 curl_error 一定要在 curl_exec 函数后,否则大概率返回以下内容:

string(0) ""

显然,这对于找出错误毫无意义。正常输出错误如下:

string(26) "Port number ended with '\'"

接下来就根据错误信息开始排除出错原因。

但是 ,有些情况下,依然可能会返回空字符串,无法打印出真正的错误。这时,可以通过 curl_errno 返回错误编码,查找相应编码的错误,再把问题给解决。

记住执行 curl_errno 一定也要在 curl_exec 函数后,否则大概率返回以下内容:

int(0)

寻找错误编码代码如下:

$response = curl_exec($ch);
//$error = curl_error($ch)
//var_dump($error);exit(0);
$errno = curl_errno($ch)
var_dump($errno);exit(0);
return $response;

错误输出如下:

int(3)

之后根据错误代码进行排错纠察即可。

常见返回 fasle 处理方案,要根据你的实际情况进行调整,这里只是为了测试,放开所有权限:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);    //信任任何证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);        //表示不检查证书

顺便记录一下,如果错误代码是 77 ,则需要重启 Apache 即可。

症状:php curl调用https出错 排查方法:在命令行中使用curl调用试试。 原因:服务器所在机房无法验证SSL证书。 解决办法:跳过SSL证书检查。 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 症状:php curl调用curl_exec返回bool(false),命令行curl调用正常。 排查方法: var_dump(curl_error($ch)); 返回: string(23) “Empty reply from server” 再排查: curl_setopt($ch, CURLOPT_HEADER, true); cur PHP 5.5以下用@,php5.5 @已被弃用,但勉强还能用,php5.6直接删除了@用法,必须得用new CURLFile(realpath(‘image.png’))这种方式才行了。关键我这还没有任何报错提示之类的,就是$_FILES为空,只有$_POST有值,今天遇到这个坑,搜到这篇文章:各版本兼容的cURL文件上传。最近做的一个需求,使用PHP cURL上传文件。踩坑若干,整理如下。不同... $curl=curl_init();/*curl_setopt_array($curl,array(CURLOPT_URL=>$url,CURLOPT_REFERER=>$url,CURLOPT_AUTOREFERER=>true,CURLOPT_RETURNTRANSFER=>true,CURLOPT_SSL_VERIFYPEER=>fals...   一般情况使用curl去访问https总会出一些大大小小的问题   前几天我就出现了使用curl返回false使用curl_error也返回空,半天都找不到问题。   后来通过curl_errno返回错误编码,在查找相应编码的错误,才得以解决问题。 常见返回fasle处理方案: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); ... 首先来看一个封装的curl函数function request_post($url = '', $param = '') {if (empty($url) || empty($param)) {return false;}$postUrl = $url;$curlPost = $param;$curl = curl_init();//初始化curlcurl_setopt($curl, CURLOP... 错误检查和处理是程序员的朋友。 检查初始化和执行cURL函数的返回值。 如果失败,FALSEFALSE将包含更多信息:try {$ch = curl_init();// Check if initialization had gone wrong*if ($ch === false) {throw new Exception('failed to initialize');}curl_setop... 本文介绍一下自己在使用curl中遇到的问题解决办法。希望可以帮助到大家。首先来看一个封装的curl函数function request_post($url = '', $param = '') {if (empty($url) || empty($param)) {return false;}$postUrl = $url;$curlPost = $param;$curl = curl_init(... private function _postCurl($url,$body,$header = array(),$type="POST"){//1.创建一个curl资源$ch = curl_init();//2.设置URL和相应的选项curl_setopt($ch,CURLOPT_URL,$url);//设置url//1)设置请求头array_push($header, 'Accept:appli... php 使用 curl 如何返回数据 在我们使用 php 模拟发送数据时会用到 curl 库,使用改功能时该如何测试接收发送数据那端的功能错误打印。 首先,先了解官方对 curl_exec 函数的 返回值 定义: 成功时返回 TRUE, 或者在失败时返回 FALSE。 然而,如果 设置 了 CURLOPT_RETURNTRANSFER 选项,函数执行成功时会返回执行的结果,失败时返回 FALSE... DESCRIPTION This man page includes most, if not all, available error codes in libcurl. Why 下面由宝塔面板使用教程栏目给大家介绍宝塔面板安装后简单的安全设置,希望对需要的朋友有所帮助!一、修改宝塔面板默认端口第一件事,我们可以修改宝塔面板的默认端口。修改的位置在左侧菜单的 “面板设置” 里面,默认端口是 8888,我们可以改成别的我们自己喜欢的端口,建议在 8888 – 65535 之间随机选择,越没规律越好。修改完之后保存即可生效。二、放行指定端口在面板左侧菜单的 “安全” 里面,我们... 有的时候总会遇到一个“莫名其妙的问题”,复制链接明明能在浏览器上访问,而curl请求却总是返回false,下面来分析以下原因或解决方法。如以下代码为例:public function curlHttps($url, $postdata=array(), $timeOut=5, $header=array()){$ch = curl_init();curl_setopt($ch, CURLOPT_U... 问题1:从gitee新建项目,在本地推送代码提示没有授权,于是发现我没有配置git config的name和email,之前还是全局配置。 问题2:配置了发现每次拉取代码,都需要输入用户名和密码不太方便,所以尝试使用git remote set-url方式设置用户和密码,不过报错: fatal: unable to access 'https://username:password@gitee.com: Port number ended with 'l' 二、问题解决 问题1:设置