推荐一个curl库,实现整站克隆功能

来源:互联网 发布:各区县地图json 编辑:程序博客网 时间:2024/06/04 18:17

有时候经常会用到一些在线手册,比如国内或国外的,有些是访问速度慢,有些是作者直接吧网站关闭了,有些是服务器总是宕机,所以还是全盘克隆到自己服务器比较爽,

这里给大家推荐接触过的一个CURL库,可以实现整站克隆功能,对于复制一些手册站点还是非常实用的。


库特点:

给定一初始连接,初始链接以下的层级所有文件会拷贝到本地。

多次克隆可以配置是否覆盖。

可以配置是否下载图片。

所有链接替换为相对链接,所以可以随便rewrite。

绝对不会出现文件覆盖等问题。



克隆结果展示(这个克隆操作几秒钟就完成了):

克隆源网站:http://www.laruence.com/manual/

克隆结果:http://manual.phpdr.net/yaf/

技术交流: http://www.lai18.com/content/368643.html 


Demo代码:

<?php//author http://www.lai18.comclass 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//author http://www.lai18.comclass 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; }}


4 0