php curl批处理

时间:2023-03-09 20:14:44
php  curl批处理

php模拟多线程用到curl库,这个库很强大,可以做好多事,比如模拟登陆,文件上传/下载,数据采集等。

下面是我的代码,很简单,有些还功能还不会用。

<?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); ?>

      这段代码就是并行爬取百度和谷歌的代码,以后再慢慢完善。

还有好多事要做。