ITPub博客

首页 > 数字化转型 > ERP > 当使用curl_multi_exec操作时,需要获取返回的错误信息时,通过curl_errno会发现结果始终为0

当使用curl_multi_exec操作时,需要获取返回的错误信息时,通过curl_errno会发现结果始终为0

原创 ERP 作者:gavinlee 时间:2011-09-01 16:29:23 0 删除 编辑
当使用curl_multi_exec操作时,需要获取返回的错误信息时,通过curl_errno会发现结果始终为0,即没有错误,即使是已出错的状况.
原来以为是PHP的BUG,其实不然.

解决办法:

....
while($done = curl_multi_info_read($curl_multi)) { //获取已完成线程的结果
$ch = $done['handle'];//获取curl_init的资源对象
$errno = $done['result'];//取errno,直接使用curl_errno在multi操作中不可用,取不到错误,始终为0

....

详细代码省略,已写了个完整类,日后放上.
从result获取的errno和curl_errno的值是一样的,0是没有错,其他任何值都是错误号,只是这么做似乎没法知道具体error_msg,需要自己去查看CURL的man对照.不过总比不知道对错要好.
[@more@]当使用curl_multi_exec操作时,需要获取返回的错误信息时,通过curl_errno会发现结果始终为0,即没有错误,即使是已出错的状况.
原来以为是PHP的BUG,其实不然.

解决办法:

....
while($done = curl_multi_info_read($curl_multi)) { //获取已完成线程的结果
$ch = $done['handle'];//获取curl_init的资源对象
$errno = $done['result'];//取errno,直接使用curl_errno在multi操作中不可用,取不到错误,始终为0

....

详细代码省略,已写了个完整类,日后放上.
从result获取的errno和curl_errno的值是一样的,0是没有错,其他任何值都是错误号,只是这么做似乎没法知道具体error_msg,需要自己去查看CURL的man对照.不过总比不知道对错要好.

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/310974/viewspace-1054668/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    51
  • 访问量
    795695