单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
以下是核心文件:
index.PHP文件
<div class="codetitle"><a style="CURSOR: pointer" data="62055" class="copybut" id="copybut62055" onclick="doCopy('code62055')"> 代码如下:
<div class="codebody" id="code62055">
<?
PHP header('Content-Type:text/html charset:utf-8');
date_default_timezone_set('PRC');
$rootDir = 'listFile'; //
站点根目录,装载本程序所有
文件 //
站点base_url设置
方法:
//考虑到通用性,现默认使用
方法二,
修改方法时注意同时
修改.htaccess
文件 //
方法一:设置
站点目录为根目录
//对应.htaccess:
//#RewriteBase /
// $base_url = '
http://www.listfile.com/';
//
方法二:设置
站点子目录为根目录
//对应.htaccess:
//RewriteBase /listFile/
$base_url = '
http://www.test.com/' .$rootDir .'/';
//解析
文件夹路径
if(empty($_GET['return'])){
$dir = '.';
}else {
$dir = trim(array_pop(explode($rootDir,$_GET['return'])),'/');
if(empty($dir)) $dir = '.';
else $dir = './' . $dir;
}
// echo $dir; //当前
文件夹
//遍历当前
文件夹
$pattern = '
'; // ''
搜索全部
文件,可以智能匹配,如
.jpg 搜索jpg文件,.{jpg,png}
搜索jpg和png
文件,区分大小写!!
$skip = '
.skip'; //排除.skip类型文件(对应了“被跳过输出文件.skip”),你可以自己修改,如.
PHP排除所有
PHP文件 $files = scandir_through($dir,$pattern,$skip,false);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
List Files <script type="text/javascript" src="<?php echo $base_url . 'jquery-1.6.2.min.js' ?>">
<script type="text/javascript" src="<?php echo $base_url . 'main.js' ?>">
<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/":'';?>';
<?
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 "
";
echo "
";
echo "
";
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 "
<img src='{$base_url}images/{$files['ext'][$index]}.jpg'/><a href='{$base_url}{$files['widthDir'][$index]}'>{$file}
";
echo "
{$files['filesize'][$index]}
{$filetype}
";
echo "
{$files['filemtime'][$index]}
";
}
echo '
';
?>