联系官方销售客服
QQ1835022299
028-61286886
不解压缩的情况下获取zip压缩包目录并生成前端树
代码是在前端页面的,结合/wenda/62039.html
使用
open($zipName); $tree = array(); for ($i = 0; $i < $zip->numFiles; $i++) { $filename = $zip->getNameIndex($i); $path = explode('/', $filename); $node = &$tree; foreach ($path as $dir) { if (!isset($node[$dir])) { $node[$dir] = array(); } $node = &$node[$dir]; } } function treeToHtml($tree) { $html = '
配合jstree.js 使用 给各种文件图标
'; foreach ($tree as $name => $subtree) { if (!empty($name)) { $ext = pathinfo($name, PATHINFO_EXTENSION); $html .= '- close();
file_put_contents($cacheFile, $html);
}
// 输出 HTML 树
echo '
' . $html . ' ';
?>
加了缓存以及缓存判断,但是是纯php写法,个人就单纯使用在一个模板页面里,就直接写在模板里了,这里的需要可以拿去参考,提供了大部分jstree 图标调用的代码,
缺点1:写在html中的php,不是写成函数什么的
缺点2:缓存时单纯的文件缓存,当页面大量的情况下,容易造成性能瓶颈及磁盘占用,使用内存缓存 为优缺点3:缓存是访问当前页面,然后php进行一个if判断缓存是否存在,不存在才进行一个创建,这样并不是太友好,当页面被采集等问题频繁访问可能导致服务器卡死,需要改进为 上传文件 时进行缓存
代码可以直接拿走复制黏贴直接使用,需要注意的点,
文件路径缓存路径
解决问题1:文件夹优先显示 文件后显示排序,而不是默认首字母
解决问题2:获取zip目录时 当文件夹是中文, centos7 默认中文乱码的问题