php多线程抓取网页( 第三种应用就是实现PHP的多线程任务--多线程的写法 )
优采云 发布时间: 2021-10-20 15:03php多线程抓取网页(
第三种应用就是实现PHP的多线程任务--多线程的写法
)
使用curl实现多线程
curl一般用来抓取网页,二是get或post数据,三是PHP中实现多线程任务
让我们实现多线程。
您可以返回:
do while 的解释:
因为$active要等url数据全部被接受后才会变为false,这里用curl_multi_exec的返回值来判断是否有数据,
有数据时,会一直调用curl_multi_exec。如果一段时间没有数据,就会进入选择阶段。当有新数据到来时,可以唤醒它继续执行。
这里的好处是没有了不必要的CPU消耗。更详细的解释:%D4%C2%D2%B9%C4%FD%ED%F8/blog/item/9dfcf4fbe6b84374024f563d.html
这个多线程的编写步骤:
第一步:调用 curl_multi_init
第 2 步:循环调用 curl_multi_add_handle
这一步需要注意的是curl_multi_add_handle的第二个参数是curl_init的子句柄。
第三步:不断调用 curl_multi_exec
第 4 步:根据需要调用 curl_multi_getcontent 以循环获取结果
第五步:调用curl_multi_remove_handle,对每个字句柄调用curl_close
第 6 步:调用 curl_multi_close
多线程测试渲染: