首頁 >php教程 >php手册 >推荐:PHP-Curl多线程教程

推荐:PHP-Curl多线程教程

WBOY
WBOY原創
2016-06-06 20:11:171020瀏覽

引用 本文是《php curl 多线程采集》的demo,尽可能展示此类的特性。此demo环境是本机,所以性能不能达到最高,只做为使用说明,为了高性能请到服务器调试。选择http://www.1ting.com/作为目标站点,这个站比较典型,而且国内速度也很快。 本文用到两个类(

引用

本文是《php curl 多线程采集》的demo,尽可能展示此类的特性。此demo环境是本机,所以性能不能达到最高,只做为使用说明,为了高性能请到服务器调试。选择http://www.1ting.com/作为目标站点,这个站比较典型,而且国内速度也很快。

本文用到两个类(这两个类在完整的demo包中已经包含):
CUrl:多线程,可以在这里找到。
PHPQuery:HTML分析,项目地址 http://code.google.com/p/phpquery/。如果google被封这里有较新版本 phpQuery-0.9.5.386.zip。这里用的压缩包中的 phpQuery/phpQuery.php这个单文件类,如果你不会用这个类没关系,用正则分析也可以。

必要的文件包含和初始化实例代码中都省略了。
代码非常完整,可以直接运行,demo请在命令行模式运行(你懂的)。
代码非常简洁。。。
PHPQuery需要php-dom扩展,PHP环境没有的话需要安装。另外一点一定注意!如果使用phpQuery必须在回调函数中手动调用phpQuery::unloadDocuments();释放,否则phpQuery处理的文档全部都在内存中!!!
数据库操作使用PDO,所以也需要PDO扩展。
既然是demo,那么程序上我就一切从简了。
phpQuery很NB,很多变态的用法自己去研究吧,基本可以说无所不能。如果使用phpQuery必须在回调函数中手动调用phpQuery::unloadDocuments();释放,否则phpQuery处理的文档全部都在内存中!!!
并发情况可以用360的连接查看器查看。

CUrl一些必要内容:

CUrl类单线程和多线程都可以使用缓存,并且缓存机制一样。
CUrl类抓取HTML单线程和多线程返回的内容结构一致
$result=array(‘info’=>array(),’content’=>”);
$result['info']是curl_info()的内容,$result['content']是抓取的html文件。
curl配置分为三个级别,优先级由低到高如下,优先级高的会覆盖优先级低的配置。
默认:如私有方法init()中所示。
类级别:保存在 $opt这个公有属性中,此CURL对象的所有操作中都会起作用。
任务级别:多线程任务中添加任务时指定,只在当前任务中起作用。
类中用到回调函数的地方都使用call_user_func_array(),所以必须先从PHP手册中把这个函数搞明白了。



查看原文:PHP-Curl多线程教程
php curl 多线程
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn