高分请教一个PHP难题! 我想把一个大文件夹下面的所有子文件夹和文件,按照文件夹或者文件名,按照树状结构遍历显示在一个大网页上。就是可以用加号展开,减号收缩那种树状结构。求高手给源代码,谢谢。PHP遍历源代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 遍历这边应该不少人能回答,但做目录树,可能你要到html版那边问了或者google "css3tree"或者"css tree"能找到源码下面是我一个类里面的方法,你改着用吧参数说一下返回是一个二维数组(只包含文件/带路径,空目录会丢失,想也包含子目录,请参考RecursiveIteratorIterator增加参数,这里用的是默认值 LEAVES_ONLY)$path为目录根$size(true或false),是否返回字节数$toCsv(false或一个文件名字串),是否将返回也按csv格式写入到指定文件(不影响返回)如果不需要后面两个,可以去掉后面两个参数并删除相关语句,然后直接$arr[]=(string)$itemName就返回一维数组了备注:1.需要支持SPL的php版本(5.x以后好像都支持)2.windows下面unicode文件名的文件会漏掉,这个不是程序问题,是php本身的bug或kown issue public function listDir($path, $size=false, $toCsv=false) { if (false !== $toCsv) $newCsv = new SplFileObject($toCsv, 'wb'); //参数三用的 $items = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); $arr = array(); while (list($itemName, $item) = each($items)) { $fileInfo = array(); $fileInfo['fullpath'] = (string)$itemName; if ($size) $fileInfo['size'] = (string)$item->getSize(); // 参数二用的 if (false !== $toCsv) $newCsv->fputcsv($fileInfo); // 参数三用的 $arr[] = $fileInfo; } return $arr; } 精华里有不少这方面的文档,但是是其中的部分,html的部分需要再通过自己加工 这个问题不算难题,就是一个遍历结合CSS+js实现的百度直接搜索“PHP目录树”就有不少例子了其实问之前自己搜索一下更好 用ztree插件实现+、-展开文件夹的效果。运用这个插件,你只需要做的是,获取每个路径下的文件,保存到一个数组里面。具体数组怎么构建,请参照ztree插件的使用方法。 php的session的问题 关于LAMP配置问题请教大家了 请帮我看看http watch抓出来的登陆过程,怎么看不到username=?password=? mysql的外键应该如何使用 写了文章一个无限分类程序 如何让超链接打开新网页以最大窗显示 有个小问题求教 PHP高手进来看看! 请问如何实现分页处理,包括首页,下一页,上一页,末页,跳转。提一下思路!谢了 mysql怎么搜emoji? OJS开放期刊系统的首页怎么修改 怎么样用函数require php文件不改变全局变量环境?
或者google "css3tree"或者"css tree"能找到源码下面是我一个类里面的方法,你改着用吧
参数说一下
返回是一个二维数组(只包含文件/带路径,空目录会丢失,想也包含子目录,请参考RecursiveIteratorIterator增加参数,这里用的是默认值 LEAVES_ONLY)
$path为目录根
$size(true或false),是否返回字节数
$toCsv(false或一个文件名字串),是否将返回也按csv格式写入到指定文件(不影响返回)
如果不需要后面两个,可以去掉后面两个参数并删除相关语句,然后直接$arr[]=(string)$itemName就返回一维数组了备注:
1.需要支持SPL的php版本(5.x以后好像都支持)
2.windows下面unicode文件名的文件会漏掉,这个不是程序问题,是php本身的bug或kown issue public function listDir($path, $size=false, $toCsv=false)
{
if (false !== $toCsv) $newCsv = new SplFileObject($toCsv, 'wb'); //参数三用的 $items = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
$arr = array();
while (list($itemName, $item) = each($items))
{
$fileInfo = array();
$fileInfo['fullpath'] = (string)$itemName;
if ($size) $fileInfo['size'] = (string)$item->getSize(); // 参数二用的
if (false !== $toCsv) $newCsv->fputcsv($fileInfo); // 参数三用的
$arr[] = $fileInfo;
}
return $arr;
}
百度直接搜索“PHP目录树”就有不少例子了
其实问之前自己搜索一下更好
运用这个插件,你只需要做的是,获取每个路径下的文件,保存到一个数组里面。具体数组怎么构建,请参照ztree插件的使用方法。