pthreads多线程数据采集

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體:   |    |    |  超大  

以前使用curl的多线程并不是真正的多线程,只是一种模拟的多线程,现在使用pthreads来实现真正意义上的多线程。

下载:

windows下:

http://windows.php.net/downloads/pecl/releases/pthreads/0.0.45/

mac、unix、linux下:

https://github.com/krakjoe/pthreads

安装方式:

windows下:

解压得到pthreadVC2.dll和php_pthreads.dll文件,把vc2文件放到php.exe同级目录,把php_pthreads.dll放到扩展目录下。

修改php.ini文件 添加extension=php_pthreads.dll

修改Apache配置文件httpd.conf 添加LoadFile "yourpath/php/pthreadVC2.dll"

mac、unix、linux下:

具体可参考宴哥的博客http://blog.s135.com/pthreads/

调用方式:

具体的用法也可以参考宴哥的博客http://blog.s135.com/pthreads/

结合以前的get_html也可以这样来实现类

[flash=500,400]http://s1.knowsky.com/20160211/3acfu5gbtew35.gif[/flash]

1 class threads extends Thread

2 {

3 public $url = '';

4 public $options = array();

5 public $data;

6

7 public function __construct($url, $options = array()){

8 $this->url = $url;

9 $this->options = $options;

10 }

11

12 public function run(){

13 if(!empty($this->url)){

14 $this->data = $this->get_html($this->url, $this->options);

15 }

16 }

17

18 public function get_html($url,$options = array()){

19 if(empty($options)){

20 $options[CURLOPT_RETURNTRANSFER] = true;

21 $options[CURLOPT_TIMEOUT] = 5;

22 }

23 $ch = curl_init($url);

24 curl_setopt_array($ch,$options);

25 $html = curl_exec($ch);

26 curl_close($ch);

27 if($html === false){

28 return false;

29 }

30 return $html;

31 }

32 }

[flash=500,400]http://s1.knowsky.com/20160211/3acfu5gbtew35.gif[/flash]

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航