php使用curl模拟多线程实现批处理功能示例

yipeiwu_com6年前PHP代码库

本文实例讲述了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);
?>

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

还有好多事要做。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》及《PHP中json格式数据操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

列举PHP的Yii 2框架的开发优势

列举PHP的Yii 2框架的开发优势

当 Yii框架仍处于 RC(候选版)阶段时,我们 对它进行过报道,那时它刚刚全面达到候选版本阶段,(现在它已经发布了正式版本)我们感觉是时候再次讨论这个话题:选择 Yii框架的原因。 1...

php一些错误处理的方法与技巧总结

1:为什么我得不到变量 我在一网页向另一网页POST数据name,为什么输出$name时却得不到任何值? 在PHP4.2以后的版本中register_global默认为off 若想取得...

PHP程序员不应该忽略的3点

最近发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在。Perl当年如何在商界出名?其强大的正则表达式。而PHP呢?他是一门从Unix下发展起来的语言,当然也就继承...

php sprintf()函数让你的sql操作更安全

$bookSQL=sprintf("UPDATE book SET pass=%s WHERE id=%d",   ...

PHP中preg_match函数正则匹配的字符串长度问题

项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来。 后来怀疑PHP 的preg_match有字符串长度限制,果然,发现“pcre.backtrack_limi...