当使用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博客 ” ,链接:http://blog.itpub.net/310974/viewspace-1054668/,如需转载,请注明出处,否则将追究法律责任。