php – 如何知道curl_multi_exec中哪个URL失败?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何知道curl_multi_exec中哪个URL失败?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我编写了一个类,以便更容易使用多个cURL请求,当我收到404错误或任何其他错误时,我想记录错误.
我已经将CURLOPT_FaiLONERROR设置为true.

我目前正在使用curl_multi_info_read().

这是我的代码

$active = null;
    do {
        $multi_exec = curl_multi_exec($this->_multi_handle,$active);
    } while ($multi_exec == CURLM_CALL_MULTI_PERFORM);

    while ($active && $multi_exec == CURLM_OK) {
        if (curl_multi_select($this->_multi_handle) != -1) {
            do {
                $multi_exec = curl_multi_exec($this->_multi_handle,$active);
                $info = curl_multi_info_read($this->_multi_handle);
                if ( $info['result'] != 0 ) {
                    $this->_errors[] = $info; // currently storing the whole array
                }
            } while ($multi_exec == CURLM_CALL_MULTI_PERFORM);
        }
    }

错误的结果是这样的数组:

Array
(
    [0] => Array
        (
            [msg] => 1
            [result] => 22 // on success this is 0
            [handle] => Resource id #4 // does this help in finding the url if I have the handle ID ?
        )

那么如何才能获得发生错误的URL?这只给了我句柄资ID

并提前感谢.

根据您的实际需要,您可以将此句柄传递给 curl_errorcurl_errno函数以检查错误,并且可以使用 curl_getinfo从该句柄中提取URL:
curl_getinfo($info['handle'],CURLINFO_EFFECTIVE_URL);

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何知道curl_multi_exec中哪个URL失败?全部内容,希望文章能够帮你解决php – 如何知道curl_multi_exec中哪个URL失败?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。