您现在的位置是:网站首页> 编程资料编程资料
PHP curl批处理及多请求并发实现方法分析_php技巧_
2023-05-25
707人已围观
简介 PHP curl批处理及多请求并发实现方法分析_php技巧_
本文实例讲述了PHP curl批处理及多请求并发实现方法。分享给大家供大家参考,具体如下:
在面试过程中遇到一个问题,加入一个一个网站访问一次需要两秒,我们如何实现在2秒左右请求三次?
面试官想问的就是如何使用curl并发处理请求
关于curl_multi_init()
一般来说,想到要用curl_multi_init()时,目的是要同时请求多个url,而不是一个一个依次请求,否则就要curl_init()了。
不过,在使用curl_multi的时候,你可能遇到cpu消耗过高、网页假死等现象,可以看看《PHP使用curl_multi_select解决curl_multi网页假死问题》
使用curl_multi的步骤总结如下:
- 第一步:调用
curl_multi_init - 第二步:循环调用
curl_multi_add_handle这一步需要注意的是,
curl_multi_add_handle的第二个参数是由curl_init而来的子handle。 - 第三步:持续调用
curl_multi_exec - 第四步:根据需要循环调用
curl_multi_getcontent获取结果 - 第五步:调用
curl_multi_remove_handle,并为每个字handle调用curl_close - 第六步:调用
curl_multi_close
各函数作用解释:
curl_multi_init()
初始化一个curl批处理句柄资源。
curl_multi_add_handle()
向curl批处理会话中添加单独的curl句柄资源。curl_multi_add_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。
curl_multi_exec()
解析一个curl批处理句柄,curl_multi_exec()函数有两个参数,第一个参数表示一个批处理句柄资源,第二个参数是一个引用值的参数,表示剩余需要处理的单个的curl句柄资源数量。
curl_multi_remove_handle()
移除curl批处理句柄资源中的某个句柄资源,curl_multi_remove_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。
curl_multi_close()
关闭一个批处理句柄资源。
curl_multi_getcontent()
在设置了CURLOPT_RETURNTRANSFER的情况下,返回获取的输出的文本流。
curl_multi_info_read()
获取当前解析的curl的相关传输信息。
示例代码:
0); // 关闭全部句柄 curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh); ?>
获取批处理后的结果:

string curl_multi_getcontent ( resource $ch )
ch是由 curl_init() 返回的 cURL 句柄。
参考:
http://www.php.net/manual/zh/function.curl-multi-init.php
https://www.jb51.net/article/145660.htm
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》及《PHP中json格式数据操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关内容
- php使用curl_init()和curl_multi_init()多线程的速度比较详解_php技巧_
- php使用curl获取header检测开启GZip压缩的方法_php技巧_
- 深入研究PHP中的preg_replace和代码执行_php技巧_
- php使用QueryList轻松采集js动态渲染页面方法_php技巧_
- Yii2结合Workerman的websocket示例详解_php实例_
- PHP按符号截取字符串的指定部分的实现方法_php实例_
- php 中htmlentities导致中文无法查询问题_php实例_
- 使用PHPExcel导出Excel表_php技巧_
- thinkPHP5.0框架事务处理操作简单示例_php实例_
- thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法_php实例_
