php 获取ftp目录。。。。(视回答再给分数,谢谢)
http://tieba.baidu.com/p/1307022085小弟有两个问题前来请教:【1】php怎样得到ftp的结构,就是目录和文件的树形结构之类的;【2】PH...
http://tieba.baidu.com/p/1307022085
小弟有两个问题前来请教:
【1】php怎样得到ftp的结构,就是目录和文件的树形结构之类的;
【2】PHP可不可以获取ftp上文件的创建时间,注意不是修改时间;
【3】除了如下面小弟的低效代码遍历列出ftp的所有目录和文件外,有没有高效的方法;
问题1是重点啊,弄很久了,毫无头绪,最好能把结构存到数据库就更好了~~谢谢啊!!!
ftp_server = "127.0.0.1";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to the ftp server!");
ftp_login($conn_id, "anonymous", "") or die("please confirm the username and password");
$filelist = ftp_nlist($conn_id, "/mm");
//isdir:判断是目录/文件
function isdir($conn_id, $file) {
if(ftp_size($conn_id, $file) == -1) {
return true;
} else {
return false;
}
}
//listfile:显示目录文件结构
function listfile($conn_id, $filelist) {
$files = array();
$str = "";
$br = "<br>";
$i = 0; $j = 0;
foreach($filelist as $file) {
if(isdir($conn_id, $file)){
//如果是目录,递归执行函数
echo "■".$i."■".str_repeat("___", (substr_count($file, "/") - 2) * 2)."【".basename($file)."】/数目".count($file);
$str .= $file.$br;
array_push($files, $file);
$flist = ftp_nlist($conn_id, $file);
listfile($conn_id, $flist);
} else {
echo "■".$i.".".$j."■".str_repeat("___", (substr_count($file, "/") - 2) * 2).basename($file)
}
}
} 展开
小弟有两个问题前来请教:
【1】php怎样得到ftp的结构,就是目录和文件的树形结构之类的;
【2】PHP可不可以获取ftp上文件的创建时间,注意不是修改时间;
【3】除了如下面小弟的低效代码遍历列出ftp的所有目录和文件外,有没有高效的方法;
问题1是重点啊,弄很久了,毫无头绪,最好能把结构存到数据库就更好了~~谢谢啊!!!
ftp_server = "127.0.0.1";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to the ftp server!");
ftp_login($conn_id, "anonymous", "") or die("please confirm the username and password");
$filelist = ftp_nlist($conn_id, "/mm");
//isdir:判断是目录/文件
function isdir($conn_id, $file) {
if(ftp_size($conn_id, $file) == -1) {
return true;
} else {
return false;
}
}
//listfile:显示目录文件结构
function listfile($conn_id, $filelist) {
$files = array();
$str = "";
$br = "<br>";
$i = 0; $j = 0;
foreach($filelist as $file) {
if(isdir($conn_id, $file)){
//如果是目录,递归执行函数
echo "■".$i."■".str_repeat("___", (substr_count($file, "/") - 2) * 2)."【".basename($file)."】/数目".count($file);
$str .= $file.$br;
array_push($files, $file);
$flist = ftp_nlist($conn_id, $file);
listfile($conn_id, $flist);
} else {
echo "■".$i.".".$j."■".str_repeat("___", (substr_count($file, "/") - 2) * 2).basename($file)
}
}
} 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
没有直接的命令可以列出树形结构,递归遍历方法都算比较底层的实现了,不存在低效问题。
另外,一些文件系统中并没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。所以一般只能获取修改时间。
另外,一些文件系统中并没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。所以一般只能获取修改时间。
更多追问追答
追问
谢谢你的解答,不过重点:怎样的得到树形结构呢?
我想是不是可以在递归遍历得到的路径字符串上下手
还是在递归遍历过程就可以得到。。。。
伤脑筋啊。。。。
追答
你放出的代码不就是打印树形结构的吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询