自己写的php curl库实现整站克隆功能
2015-02-12 00:00
2081 查看
有时候经常会用到一些在线手册,比如国内或国外的,有些是访问速度慢,有些是作者直接吧网站关闭了,有些是服务器总是宕机,所以还是全盘克隆到自己服务器比较爽。
库特点:
给定一初始连接,初始链接以下的层级所有文件会拷贝到本地。
多次克隆可以配置是否覆盖。
可以配置是否下载图片。
所有链接替换为相对链接,所以可以随便rewrite。
绝对不会出现文件覆盖等问题。
最NB的特点是,没有比这更NB的库了。
SVN:http://svn.phpdr.net/repos/ares/php/library/trunk/lib/CurlMulti/MyCurl/Clone.php
脚本之家下载:http://xiazai.jb51.net/201502/other/CurlMulti.rar
克隆结果展示(这个克隆操作几秒钟就完成了):
克隆源网站:http://www.laruence.com/manual/
克隆结果:http://manual.phpdr.net/yaf/
Demo代码:
库特点:
给定一初始连接,初始链接以下的层级所有文件会拷贝到本地。
多次克隆可以配置是否覆盖。
可以配置是否下载图片。
所有链接替换为相对链接,所以可以随便rewrite。
绝对不会出现文件覆盖等问题。
最NB的特点是,没有比这更NB的库了。
SVN:http://svn.phpdr.net/repos/ares/php/library/trunk/lib/CurlMulti/MyCurl/Clone.php
脚本之家下载:http://xiazai.jb51.net/201502/other/CurlMulti.rar
克隆结果展示(这个克隆操作几秒钟就完成了):
克隆源网站:http://www.laruence.com/manual/
克隆结果:http://manual.phpdr.net/yaf/
Demo代码:
<?php class Controller_Spider extends MyYaf_Controller_Base{ function init(){ parent::init(); if(!$this->getRequest()->isCli()){ Ares_Http::error403(); } include 'CurlMulti/CurlMulti.php'; include 'CurlMulti/MyCurl.php'; include 'phpQuery.php'; } }
<?php class YafdocController extends Controller_Spider { function init() { parent::init (); include 'CurlMulti/MyCurl/Clone.php'; } function indexAction() { $url = 'http://www.laruence.com/manual'; $dir = Yaf_Application::app ()->getAppDirectory () . '/data/manual'; $cacheDir = $this->getBaseDir () . '/cache/curl'; if (! is_dir ( $cacheDir )) { mkdir ( $cacheDir ); } $curl = new CurlMulti (); $curl->maxThread = 10; $curl->cache ['enable'] = true; $curl->cache ['enableDownload'] = true; $curl->cache ['dir'] = $cacheDir; $curl->cache ['compress'] = true; $clone = new MyCurl_Clone ( $curl, $url, $dir ); $clone->overwrite = true; $clone->start (); return false; } }
相关文章推荐
- 自己写的php curl库实现整站克隆功能
- 自己写的php curl库实现整站克隆
- 自己写的php curl库实现整站克隆
- 推荐一个curl库,实现整站克隆功能
- 推荐一个curl库,实现整站克隆功能
- 如何能够使自己的网站实现发送邮件的功能?
- 如何在自己网页上实现加入google groups功能
- 学东西要先看这个东西能给你提供什么功能,作东西要明白自己要实现什么功能!一定要耐下性子!
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
- [VC]自己实现TRACE功能
- 自己实现"后退"(含JS)的功能
- 自己写了一个上传类,实现了常用的功能
- 自己的实现的二叉树的一些功能
- 自己动手写ORM框架(八):实现修改功能Update方法
- 自己动手写ORM框架(九):实现删除功能Remove方法
- 添加新的Excel工具栏,实现自己需要的功能。
- Ajax程序中,自己实现页面前进、后退、与标签功能(asp.net2.0)
- 使用管道编程----利用别人的程序,实现自己的功能
- 本人用SPRING 框架自己写DAO实现LIMIT功能
- 自己动手写ORM框架(六):实现查询功能FindById方法