php多线程抓取多个网页(这里有新鲜出炉的PHP面向对象编程,程序狗速度看过来!)

优采云 发布时间: 2022-03-05 23:03

  php多线程抓取多个网页(这里有新鲜出炉的PHP面向对象编程,程序狗速度看过来!)

  新鲜出炉的PHP面向对象编程来了,程序狗的速度来了!

  PHP开源脚本语言PHP(外文名:Hypertext Preprocessor,中文名:“Hypertext Preprocessor”)是一种通用的开源脚本语言。文法吸收了C语言、Java和Perl的特点。入门门槛低,易学,应用广泛。它主要适用于Web开发领域。 PHP的文件扩展名为php。

  本文章主要介绍PHP中foreach结合curl实现多线程的方法,分析foreach语句结合curl循环调用的原理和实现技巧,以如下形式模拟多线程例子。有需要的朋友可以参考以下

  本文的例子介绍了php中foreach结合curl实现多线程的方法。分享给大家,供大家参考,如下:

  php不支持多线程,但是我们可以通过foreach实现伪多线程,但是这种伪多线程的速度不一定比单线程快,我们来看一个例子。

  在使用foreach语句循环图片URL并通过CURL将所有图片保存在本地时,存在一个问题,只能是采集。现将foreach与CURL结合进行多个URL请求的方法做如下总结。

  方法一:循环请求

  

$sr=array(url_1,url_2,url_3);

foreach ($sr as $k=>$v) {

$curlPost=$v.'?f=传入参数';

$ch = curl_init($curlPost) ;

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回

curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回

$data = curl_exec($ch) ;

echo $k.'##:'.$data.'

';

}

curl_close($ch);

  上面的代码需要特别注意,curl_close必须放在foreach循环结束的外面,如果放在里面会出现我上面提到的多个IMGURL,而且只有一个URL可以是采集的问题。

  方法二:多线程循环

<p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线