php实现从ftp服务器上下载文件树到本地电脑的程序
php实现从ftp服务器上下载文件树到本地电脑的程序
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:/*用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异a:单独的文件名b:包含目录的文件名。如果挪...

复制代码 代码如下:

/*

用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教程学习
编程开发子分类