源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)

  • 时间:2022-11-19 12:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
以下是核心文件: index.php文件
[url=<?php echo $base_url . ]</head> <body> <script type="text/javascript"> var base_url = '<?php echo $base_url ?>'; //链接携带return标志,若携带,则autoClickUrl自添加一层下级文件夹用于跳转,跳转后获得美化后的URL。 var autoClickUrl = '<?php echo (strpos($_SERVER['REQUEST_URI'],'?return') !== false)?array_shift(explode('?',$_SERVER['REQUEST_URI']))."baddir/":'';?>'; </script> <?php //文件类型数组 $filetypes = array( 'txt' => 'txt文本文件', 'dir' => '文件夹', 'php' => 'php文件', 'css' => 'css文件', 'js' => 'js文件', 'doc' => 'Word文档', 'xls' => 'Excel工作表', 'jpg' => 'jpg图片文件', 'gif' => 'gif图片文件', 'png' => 'png图片文件', 'mp3' => 'mp3文件', 'zip' => 'zip压缩包', 'rar' => 'rar压缩包', 'htm' => 'htm网页文件', 'html' => 'html网页文件', 'undefined'=>'文件类型未知', ); //自定义屏蔽输出文件 $skipfiles = array( 'index.php', 'index.html', 'jquery-1.6.2.min.js', 'main.js', 'base.css', ); //按规律输出当前文件夹所有文件 echo "<div id='back'><a href=''><img src='{$base_url}images/dir.jpg'/>..</a></div>"; echo "<div id='container'>"; echo "<div class='file text-center'><div class='filename border-right'>名称</div><div class='filesize border-right'>大小</div>"; echo "<div class='filetype border-right'>类型</div><div class='filemtime'>修改日期</div></div>"; foreach($files['filename'] as $index => $file){ if(in_array($file,$skipfiles)) continue; if(is_null($filetypes[$files['ext'][$index]])) $filetype = '文件类型未知'; else $filetype = $filetypes[$files['ext'][$index]]; echo "<div class='file'><div class='filename'><img src='{$base_url}images/{$files['ext'][$index]}.jpg'/><a href='{$base_url}{$files['widthDir'][$index]}'>{$file}</a></div>"; echo "<div class='filesize text-right'>{$files['filesize'][$index]} </div><div class='filetype text-right'>{$filetype}</div>"; echo "<div class='filemtime text-center'>{$files['filemtime'][$index]}</div></div>"; } echo '</div>'; ?> </body> </html> <?php //文件夹遍历函数 function scandir_through($dir,$pattern='*',$skip=false,$subInclude=true,$flag=GLOB_BRACE){ $files = array(); //获取当前目录下所有文件及文件夹 $items = glob($dir . '/*'); //遍历所有项目,若设置$subInclude为true,则继续遍历子目录 for ($i = 0; $i < count($items); $i++) { if ($subInclude && is_dir($items[$i])) { $add = glob($items[$i] . '/*'); if($add === false) $add = array(); $items = array_merge($items, $add); }else { $slash = strrpos($items[$i],'/'); $dir = substr($items[$i],0,$slash); //若当前文件匹配文件查找模式$pattern,则加入$files数组中 if(in_array($items[$i],glob($dir.'/'.$pattern,$flag)) && (($skip===false) || !in_array($items[$i],glob($dir.'/'.$skip,$flag)))) { $files['filemtime'][] = date('Y-m-d H:i:s',filemtime($items[$i])); //放这里为了解决iconv后中文名文件获取时间失败问题 $items[$i] = iconv('gb2312','utf-8',$items[$i]); $file = substr($items[$i],$slash+1); $files['widthDir'][] = $items[$i]; $files['filename'][] = $file; if(is_dir($items[$i])) { $files['ext'][] = 'dir'; $files['filesize'][] = ''; }else { $files['filesize'][] = ceil(filesize($file)/1024).'KB'; if(strrpos($file,'.') === false) $files['ext'][] = 'undefined'; else $files['ext'][] = strtolower(array_pop(explode('.',$file))); } } } } return $files; } /* //.htaccess 文件,位于根目录下,原理:访问路径非文件,即文件夹,因此跳转至根路径下做解析。 RewriteEngine on #一级目录法 #RewriteBase / #二级目录法 RewriteBase /listFile/ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) index.php?return=%{REQUEST_FILENAME} [L] */ ?>
JS文件 CSS文件
[url=http://xiazai.jb51.net/201207/yuanma/listFile_jb51.rar]下载[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部