php curl异步跳转,php curl批处理--可控并发异步
$mh = curl_multi_init();
$ch = array();
$chunck = 10; //并发控制数
$all = count($urls);//所有的请求url数组
$chunck = $all > $chunck ? $chunck : $all;
$options = array(
CURLOPT_HEADER=>FALSE,
CURLOPT_RETURNTRANSFER=>TRUE,
CURLOPT_FOLLOWLOCATION=>TRUE,
CURLOPT_MAXREDIRS=>5,
CURLOPT_USERAGENT=>'Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0'
);
for($i = 0 ; $i < $chunck ; $i++){
$ch[$i] = curl_init();
curl_setopt($ch[$i],CURLOPT_URL,$urls[$i]);
curl_setopt_array($ch[$i],$options);
curl_multi_add_handle($mh,$ch[$i]);
}
do {
while(($execrun = curl_multi_exec($mh, $running)) == CURLM_CALL_MULTI_PERFORM);
if($execrun != CURLM_OK)break;
// a request was just completed -- find out which one
while($done = curl_multi_info_read($mh)) {
//获取已经返回的url在urls数组里德的index
$index = array_search($done['handle'],$ch);
$info = curl_getinfo($done['handle']);
if ($info['http_code'] == 200){
$output = curl_multi_getcontent($ch[$index]);
// request successful. process output using the callback function.
$save_path = $i.'.txt';//数据保存路径
file_put_contents($save_path,$output);
// start a new request (it's important to do this before removing the old one)
$next = $i++;// increment i
$ch[$next] = curl_init();
$options[CURLOPT_URL] = $urls[$next];//将下一个请求添加到队列
curl_setopt_array($ch[$next],$options);
curl_multi_add_handle($mh, $ch[$next]);
// remove the curl handle that just completed
curl_multi_remove_handle($mh, $done['handle']);
} else {
// request failed. add error handling.
}
}
} while ($running);
curl_multi_close($mh);
阅读(1446) | 评论(0) | 转发(0) |
php curl异步跳转,php curl批处理--可控并发异步相关推荐
- 用php批处理图片,PHP中使用CURL发送get/post请求上传图片批处理功能
cURL是利用url语法规定传输文件和数据的工具.php中有curl拓展,一般用来实现网络抓取,模拟发送get post请求,文件上传. 在php中建立curl的基本步骤如下: 1.初始化 2. ...
- php curl post上传图片,PHP中使用CURL发送get/post请求上传图片批处理功能
cURL是利用url语法规定传输文件和数据的工具.php中有curl拓展,一般用来实现网络抓取,模拟发送get post请求,文件上传. 在php中建立curl的基本步骤如下: 1.初始化 2. ...
- curl取跳转地址 php_用PHP如何实现解析抖音无水印视频
很多时候你在douyin里看到了一个短视频,想复制下来自己编辑文字来发布,可是视频里的水印却是原者的.这个时候你想把水印去掉,你要如何做呢?这里提供PHP实现去除水印的主要方法,其实很简单. 使用方法 ...
- php curl 不验证ssl,PHP Curl https跳过ssl证书认证报错记录及解决
PHP Curl https跳过ssl证书认证报错记录及解决 function get($url = '', $cookie = '') { $ch = curl_init(); curl_setop ...
- curl命令详解 (curl -I)
转 https://www.cnblogs.com/guixiaoming/p/8507268.html curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出&qu ...
- curl代理ippost php_php使用curl通过代理获取数据的实现方法
本文实例讲述了php使用curl通过代理获取数据的实现方法.分享给大家供大家参考,具体如下: $curl=curl_init(); curl_setopt($curl, CURLOPT_URL, &q ...
- php curl登陆邮箱,php利用CURL函数登入163邮箱并获取自己的通讯录
我们使用phpmailer登录邮件发邮件也是使用了curl原理来实现模仿用户发邮件了,今天看了两个利用CURL函数登入163邮箱并获取自己的通讯录的例子,希望对各位有帮助. 学习了一些CURL的基础知 ...
- php把服务器文件curl提交,php中使用curl进行文件上传的巨坑
我是一个兼职后端的前端程序员. 我用laravel写了一套微信公众平台管理系统.有一个需求是,切换了开发模式之后,要将一些需要自动回复的图片先push到微信自己的服务器上,换回media_id,然后用 ...
- 【curl】【php】curl报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法
[curl][php]curl报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法 参考文章: (1)[curl][php]curl报错,错误代码77,CURLE_S ...
最新文章
- 数据治理(三):数据质量管理
- 10行代码实现目标检测,请收下这份教程
- [kuangbin带你飞]专题六-生成最小树
- 波士顿动力机器人齐秀舞姿,这是要成团出道?
- windows下安装python
- Spring Cloud Gateway(五):路由定位器 RouteLocator
- 团队项目第一篇——NABCD
- 巧用脚本为木马“整容”
- .net测试篇之单元测试/集成测试神器Autofixture
- js for in遍历对象_JS中轻松遍历对象属性的几种方式
- 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
- 【渝粤教育】国家开放大学2019年春季 1396药事管理与法规(本) 参考试题
- Structs 2 session 学习
- png图像保存为yuv格式以及yuv格式转为png
- Java鸿鹄_(五)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--技术框架3
- win32简单只读文件程序
- 置信区间、显著性检验和统计学意义
- 软件测试常见笔试题(附带答案)—初级篇01
- Apache-drill Architechture
- 使用域名注册服务 Domains配置域名【华为云至简致远】