以前は、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を追加します
in in in inaireverture in in 拡張機能。ブログ http://blog.s135.com/pthreads/
メソッドの呼び出し:
具体的な使用法については、ヤン兄弟のブログも参照できます http://blog.s135.com/pthreads/
前の get_html と組み合わせることもできます これはクラスの実装方法です
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 }
上記では、pthreads のマルチスレッド データ収集について、その側面も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。