php实现从ftp服务器上下载文件树到本地电脑的程序


Posted in PHP onFebruary 10, 2009
/* 
用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异 
a:单独的文件名 
b:包含目录的文件名。 
如果挪用,请注意更改此处。 
*/ 
<?php 
function download_file($dir,$fc,$_FILE_) 
{ 
$fn=ftp_nlist($fc,".");//列出该目录的文件名(含子目录),存储在数组中 
$size=sizeof($fn); 
$dir=($dir=="")?$dir:('/'.$dir); 
$_FILE_=$_FILE_.$dir; 
echo $_FILE_."<br/>"; 
for($i=0;$i<$size;$i++) 
{ 
if(ereg('^[a-zA-Z0-9_]+',$fn[$i])) //提取是文件和目录,剔除.,..这两个目录 
{ 
if(ereg('^[a-zA-Z0-9_]+([a-zA-Z0-9-]*.*)(\.+)',$fn[$i])) //是文件时直接下载 
{ 
if(ftp_get($fc,$fn[$i],$fn[$i],FTP_BINARY)) 
{ 
echo "<br/>下载".getcwd()."/".$fn[$i]."成功<br/>"; 
} 
else 
{ 
echo "<br/>下载".getcwd()."/".$fn[$i]."失败<br/>"; 
} 
}//文件下载结束 
else //"是目录,进入目录,再读取文件"; 
{ 
if(!file_exists($fn[$i])) 
mkdir($fn[$i], 0700);//本地机器上该目录不存在就创建一个 
if(ftp_chdir($fc,$fn[$i])) 
chdir($fn[$i]); 
echo "当前的目录是:".getcwd()."<br/>";// 更好的看清当前目录 
download_file($fn[$i],$fc,$_FILE_);//递归进入该目录下载文件 
} 
}//提取文件,目录结束 
}//for循环结束 
ftp_cdup($fc);//ftp服务器返回上层目录 
chdir(dirname($_FILE_)); 
}//download——file()函数结束 
$_FILE_="本地机绝对地址";//例如c:/download,不要这样c:/download/ 
$hostname="服务器名"; 
$loginname="用户名"; 
$password="用户密码"; 
$fc=ftp_connect($hostname,"21") or die("Couldn't connect to $hostname"); 
$fc_rw=ftp_login($fc,$loginname,$password); 
ftp_set_option($fc,FTP_TIMEOUT_SEC,100000);//设置超时时间 
$dir="";chdir($_FILE_);//进入本地机绝对地址目录 
download_file($dir,$fc,$_FILE_); 
ftp_quit($fc); 
//从服务器下载文件树的程序 
?>

希望能给大家带去帮助,谢谢
PHP 相关文章推荐
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
Apr 24 PHP
PHP生成条形图的方法
Dec 10 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
PHP单例模式定义与使用实例详解
Feb 06 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
PHP中的异常处理机制深入讲解
Nov 10 PHP
PHP实现页面静态化深入讲解
Mar 04 PHP
PHP6 mysql连接方式说明
Feb 09 #PHP
PHP 数据库树的遍历方法
Feb 06 #PHP
一周让你学会PHP 不错的学习资料
Feb 06 #PHP
简化php模板页面中分页代码的解析
Feb 06 #PHP
精通php的十大要点(上)
Feb 04 #PHP
用mysql内存表来代替php session的类
Feb 01 #PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 #PHP
You might like
php生成随机数或者字符串的代码
2008/09/05 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
js身份证验证超强脚本
2008/10/26 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
js实现tab切换效果
2017/02/16 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
HTML的select控件美化
2017/03/27 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
js实现整体缩放页面适配移动端
2020/03/31 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
Python3 max()函数基础用法
2019/02/19 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
python实现五子棋人机对战游戏
2020/03/25 Python
解决python replace函数替换无效问题
2020/01/18 Python
酒店端午节活动方案
2014/08/26 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
欧元符号 €
2022/02/17 杂记
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python