php实现从ftp服务器上下载文件树到本地电脑的程序
前端之家收集整理的这篇文章主要介绍了
php实现从ftp服务器上下载文件树到本地电脑的程序,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
<div class="codetitle"><a style="CURSOR: pointer" data="52894" class="copybut" id="copybut52894" onclick="doCopy('code52894')"> 代码如下:
<div class="codebody" id="code52894">
/
用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."
";
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],FTP_BINARY))
{
echo "
下载".getcwd()."/".$fn[$i]."成功
";
}
else
{
echo "
下载".getcwd()."/".$fn[$i]."失败
";
}
}//
文件下载结束
else //"是目录,进入目录,再读取
文件";
{
if(!file_exists($fn[$i]))
mkdir($fn[$i],0700);//本地机器上该目录不存在就创建一个
if(ftp_chdir($fc,$fn[$i]))
chdir($fn[$i]);
echo "当前的目录是:".getcwd()."
";// 更好的看清当前目录
download_file($fn[$i],$
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,$
FILE);
ftp_quit($fc);
//从服务器下载
文件树的程序
?>