<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); //从服务器下载文件树的程序 ?>
希望能给大家带去帮助,谢谢
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|