PHP simulation multithreading used to curl library, this library is very powerful, can do a lot of things, such as analog Landing, file upload/download, data collection and so on.
Here is my code, very simple, some also do not use the function.
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php $node_urls=array(‘http://www.baidu.com‘,‘http://www.google.com.hk‘); $ch=array(); $mh=curl_multi_init(); $ch[0]=curl_init($node_urls[0]); $ch[1]=curl_init($node_urls[1]); for($i=0;$i<2;$i++) { curl_setopt($ch[$i],CURLOPT_RETURNTRANSFER,1); curl_multi_add_handle($mh,$ch[$i]);} $running=NULL; do{ usleep(10000); curl_multi_exec($mh,$running); }while($running>0); $res=array(); for($j=0;$j<2;$j++) { $res[$j]=curl_multi_getcontent($ch[$j]); }for($k=0;$k<2;$k++) { curl_multi_remove_handle($mh,$ch[$k]); } curl_multi_close($mh);print_r($res); ?> |
This code is parallel crawl Baidu and Google's code, and then gradually improve.
There's so much more to do.