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

2015-01-24信息快讯网
/* 
用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+SQLite存储方案
PHP中文件上传的一个问题
使用bcompiler对PHP文件进行加密的代码
php visitFile()遍历指定文件夹函数
php include加载文件两种方式效率比较
PHP通过header实现文本文件下载的代码
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
PHP迅雷、快车、旋风下载专用链转换代码
php ftp文件上传函数(基础版)
php下连接ftp实现文件的上传、下载、删除文件实例代码
PHP 强制性文件下载功能的函数代码(任意文件格式)
php带密码功能并下载远程文件保存本地指定目录 修改加强版
同台服务器使用缓存APC效率高于Memcached的演示代码
基于HTTP长连接的"服务器推"技术的php 简易聊天室
php 服务器调试 Zend Debugger 的安装教程
PHP 实现多服务器共享 SESSION 数据
PHP 操作文件的一些FAQ总结
PHP6 mysql连接方式说明
php 动态多文件上传
php zlib压缩和解压缩swf文件的代码
php 文件状态缓存带来的问题
PHP 遍历XP文件夹下所有文件
php 删除无限级目录与文件代码共享
php下载远程文件类(支持断点续传)
php让图片可以下载的代码第1/2页
PHP简单系统数据添加以及数据删除模块源文件下载
PHP简单系统查询模块代码打包下载
snoopy PHP版的网络客户端提供本地下载
PHP实现Socket服务器的代码
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Win2003服务器安全加固设置--进一步提高服务器安全性
PHP实现多服务器session共享之NFS共享的方法
用PHP实现多服务器共享SESSION数据的方法
用PHP实现Ftp用户的在线管理的代码
©2014-2024 dbsqp.com