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实时显示输出
Oct 02 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
php入门教程 精简版
Dec 13 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
Dec 22 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
提高php编程效率技巧
Aug 13 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 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配合jquery实现增删操作具体实例
2013/12/12 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Python实战之制作天气查询软件
2019/05/14 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
保护环境的建议书
2014/03/12 职场文书
检讨书范文300字
2015/01/28 职场文书
工程服务质量承诺书
2015/04/29 职场文书
行政申诉状范文
2015/05/20 职场文书