php curl 多次


php curl 多次是在使用curl库时,向同一个Web服务器发送多个请求(Request)的过程。使用curl的多次功能,可以增强向Web服务器请求数据的效率。

假设我们现在需要使用curl来获取网页上的一堆图片文件,通常的做法是通过循环方式,循环遍历每一个图片的URL,一次下载一个图片。这种做法在处理少量图片时可以接受,但是当图片数量很大时,循环遍历下载会花费较长时间。使用php curl多次请求数据,则可以一次同时发送多个请求,大大加速获取数据的速度。

$url_array = array('http://www.example.com/image1.jpg','http://www.example.com/image2.jpg','http://www.example.com/image3.jpg','http://www.example.com/image4.jpg','http://www.example.com/image5.jpg','http://www.example.com/image6.jpg',);$curl_handles = array();foreach ($url_array as $url) {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);$curl_handles[] = $ch;}$multi_handle = curl_multi_init();foreach ($curl_handles as $ch) {curl_multi_add_handle($multi_handle,$ch);}$active = null;do {$status = curl_multi_exec($multi_handle, $active);if ($status != CURLM_OK) {break;}if ($active) {curl_multi_select($multi_handle);}} while ($active >= 1);foreach ($curl_handles as $ch) {$content = curl_multi_getcontent($ch);echo 'Size of ' . $url_array[$i] . ' : ' . strlen($content) . ' bytes';curl_multi_remove_handle($multi_handle, $ch);}curl_multi_close($multi_handle);

上述代码中,我们通过使用curl_multi_init()函数创建了一个新的curl_multi handle,并将每一个获取图片的curl easy handle 添加到了这个新的curl_multi handle中$multi_handle。

通过循环遍历$curl_handles,我们将所有的curl easy handle添加到了$multi_handle中。准备工作完成后,在主循环中,我们使用curl_multi_exec()函数来执行所有的easy handle,直到所有的请求都已经完成。在每次调用curl_multi_exec()函数时,我们同样需要检查返回值,以确定是否出错。

循环结束后,我们通过使用curl_multi_getcontent()函数,获取每个curl easy handle的内容即可。在这个例子当中,我们展示了每个图片的大小。

这样,使用php curl多次请求数据的代码就完成了。通过使用curl_multi_handle的功能,我们能够一次同时处理多个请求,而不是循环遍历请求,大大提高了数据请求的效率和速度。


上一篇:php curl 压缩

下一篇:php curl 命令


php curl 多次
Copyright © 2002-2019 测速网 www.inhv.cn 皖ICP备2023010105号
测速城市 测速地区 测速街道 网速测试城市 网速测试地区 网速测试街道
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!

热门搜索 城市网站建设 地区网站制作 街道网页设计 大写数字 热点城市 热点地区 热点街道 热点时间 房贷计算器