PHP多线程异步请求HTTP

    /**
     * 多线程请求链接
     * 来自官方参考例程修改
     *
     * @param array $urlArr
     * @author Xinwen Mao
     */
    public static function curl_multi($urlArr) {
        // 创建批处理cURL句柄
        $mh = curl_multi_init();

        for ($i = 0; $i < count($urlArr); $i++) {
            // 创建一对cURL资源
            $chs [$i] = curl_init();

            // 设置URL和相应的选项
            curl_setopt($chs [$i], CURLOPT_URL, $urlArr [$i]);
            curl_setopt($chs [$i], CURLOPT_HEADER, 0);
            curl_setopt($chs [$i], CURLOPT_RETURNTRANSFER, 1); // 不输出返回内容
            //  curl_setopt($chs [$i], CURLOPT_PROXY, '10.211.55.3:8888'); // 代理调试

            // 增加句柄
            curl_multi_add_handle($mh, $chs [$i]);
        }

        $active = null;
        do {
            curl_multi_exec($mh, $active);
        } while ($active > 0);

        // 关闭全部句柄
        foreach ($chs as $ch) {
            curl_multi_remove_handle($mh, $ch);
        }
        curl_multi_close($mh);
    }

猜你喜欢

转载自blog.csdn.net/maoxinwen1/article/details/79459568