200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > php使用curl模拟多线程发送请求的代码示例

php使用curl模拟多线程发送请求的代码示例

时间:2023-10-18 09:19:59

相关推荐

php使用curl模拟多线程发送请求的代码示例

后端开发|php教程

php

后端开发-php教程

本篇文章给大家带来的内容是关于php使用curl模拟多线程发送请求的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

翡翠源码,vscode 输出 终端,什么格式的u盘能装ubuntu,tomcat配制方法,sqlite数据隐藏展开,bootstrap nav 插件,ssm框架联系前端和后端,什么是大数据爬虫,php 表格数据库数据,seo人才营销,网站添加qq客服代码,网页关键词代码,如何制作动漫网站模板lzw

每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求。php的curl多线程是通过不断调用curl_multi_exec来获取内容,这里举一个demo来模拟一次curl多线程并发操作。

博客 源码 下载,vscode打字卡顿,ubuntu便捷终端,怎么部署个tomcat,c语言sqlite3删除表,家里可以养哪些爬虫类的花,php html 闭合,武汉seo推广价格咨询,电商网站 psd,网站模板 使用lzw

//设置缓冲为0(也可以去php.ini设置)ini_set(output_buffering, 0);//打开输出缓冲区ob_start();//设置一个空数组$curl_Arr=[];//这里模拟20次请求for($i=0;$i $ch){ //curl句柄入栈增加 curl_multi_add_handle($mh,$ch);}$active = null;while(count($curl_Arr)>0){ //发起curl_multi请求 @curl_multi_exec($mh,$active); foreach($curl_Arr as $k => $ch){ //获取句柄的返回值 if($result[$k]= curl_multi_getcontent($ch)){ //输出结果 echo "$result[$k]\n"; ob_flush(); //把被释放的数据发送到浏览器 flush(); //关闭该句柄 curl_multi_remove_handle($mh,$ch); unset($curl_Arr[$k]); } }}//关闭ouput_buffering机制ob_end_flush();//关闭"curl_mulit"句柄curl_multi_close($mh);

我再服务器上建立一起请求的php页面命名为test.php,内容如下

微信源码出售,vscode怎么更改颜色,ubuntu 复制键,tomcat视图怎么打开,爬虫几年,php mysql 清空,承德seo优化哪家便宜,相册网站 原码,功能栏模板lzw

1 sleep(10);2 echo seccess;exit;

表示等待十秒后数据下面语句。

然后我在命令行执行该程序结果如下:

上面代码中通过循环$curl_Arr数组来调用curl_multi_getcontent来查询是否有数据。有数据就输出并删除元素,直到$curl_Arr数组元素个数为0。

该模拟多线程实现是通过使用curl的curl_multi系列函数能实现此功能的。至于该系列函数使用介绍,百度一搜一大把。这里就不做说明了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。