首页 > 语言 > PHP > 正文

PHP实现的curl批量请求操作示例

2024-05-05 00:04:06
字体:
来源:转载
供稿:网友

本文实例讲述了PHP实现的curl批量请求操作。分享给大家供大家参考,具体如下:

<?php$ch = array();$res = array();$conn = array();$urls = array(  'baidu' => "http://www.baidu.com/",  'cheyun' => "http://auto.jrj.com.cn/",  'w3c' => "http://www.w3cschool.cc/",);// 创建批处理cURL句柄$mh = curl_multi_init();foreach ($urls as $i => $url) {  // 创建一对cURL资源  $conn[$i] = curl_init();  // 设置URL和相应的选项  curl_setopt($conn[$i], CURLOPT_URL, $url);  curl_setopt($conn[$i], CURLOPT_HEADER, 0);  curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);  curl_setopt($conn[$i], CURLOPT_TIMEOUT, 10);  //302跳转  curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1);  // 增加句柄  curl_multi_add_handle($mh, $conn[$i]);}$active = null;//防卡死写法:执行批处理句柄do {  $mrc = curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM);while ($active && $mrc == CURLM_OK) {  if (curl_multi_select($mh) != -1) {    do {      $mrc = curl_multi_exec($mh, $active);    } while ($mrc == CURLM_CALL_MULTI_PERFORM);  }}foreach ($urls as $i => $url) {  //获取当前解析的cURL的相关传输信息  $info = curl_multi_info_read($mh);  //获取请求头信息  $heards = curl_getinfo($conn[$i]);  var_dump($heards);  //获取输出的文本流  $res[$i] = curl_multi_getcontent($conn[$i]);  // 移除curl批处理句柄资源中的某个句柄资源  curl_multi_remove_handle($mh, $conn[$i]);  //关闭cURL会话  curl_close($conn[$i]);}//关闭全部句柄curl_multi_close($mh);//var_dump($res);

希望本文所述对大家PHP程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选