获取某一目录的文件或文件夹列表,并且实现点击文件夹可以继续查看该文件夹内部的文件或文件夹。
echo "<table border='1' rules='all'>";
echo "<tr><th>文件名</th><th>时间</th><th>类型</th><th>大小</th></tr>";
$dir_path = '../../zhx';
if (isset($_GET['filepath'])) {
$dir_path = $_GET['filepath'];
}
$dir = opendir($dir_path);
while ($file_name = readdir($dir)) {
if ($file_name == '.') {
continue;
}
echo "<tr>";
// 将文件名拼接成完整的路径名
$file_path = $dir_path . DIRECTORY_SEPARATOR . $file_name;
$mtime = filemtime($file_path); //时间
$mtime = date('Y-m-d H:i:s', $mtime);
$file_type = showex(filetype($file_path)); //类型
$file_size = getmenu($file_path); //大小
if (is_dir($file_path)) {
$file_size = canvertsize(getmenu($file_path));
}
if (is_file($file_path)) {
$file_size = canvertsize(get_size($file_path));
}
if (is_dir($file_path)) {
if ($file_name == '..') {
$file_name = 'back';
$mtime = '';
} else {
echo "<td><a href='demo.php?filepath={$file_path}'>{$file_name}</a></td><td>$mtime</td><td>$file_type</td><td>$file_size</td>";
}
} else {
echo "<td>$file_name</td><td>$mtime</td><td>$file_type</td><td>$file_size</td>";
}
echo "</tr>";
}
echo "</table>";
//计算大小
/*如果是文件直接huoqufilesize
如果是文件夹,需要获取所含文件的数目取得文件大小和..绝望
*/
//遍历文件夹获取目录总大小
//第一层:获得文件夹内所有文件的大小
//
function getmenu($filepath)
{
$totalsize = 0;
$fp = @opendir($filepath);
while ($filename = @readdir($fp)) {
if ($filename == '.' || $filename == '..') {
continue;
}
$newpath = $filepath . DIRECTORY_SEPARATOR . $filename;
if (is_dir($newpath)) {
$totalsize += getmenu($newpath);
} else {
$totalsize += get_size($newpath);
}
}
return $totalsize;
}
获取文件的大小
function get_size($file_name)
{
$size = '';
if (is_file($file_name)) {
$size = filesize($file_name);
}
return $size;
}
文件大小单位的转换
function canvertsize($size)
{
if ($size >= pow(2, 40)) {
$size = ceil($size / pow(2, 40)) . "TB";
} else if ($size >= pow(2, 30)) {
$size = ceil($size / pow(2, 30)) . "GB";
} else if ($size >= pow(2, 20)) {
$size = ceil($size / pow(2, 20)) . "MB";
} else if ($size >= pow(2, 10)) {
$size = ceil($size / pow(2, 10)) . "KB";
} else {
$size = $size . 'B';
}
return $size;
}
显示目录或者文件
function showex($url)
{
if ($url == 'dir') {
return "目录";
} else {
return "文件";
}
}
?>
HTML
<style>
table {
width: 100%;
height: auto;
text-align: center;
}
tr {
height: 35px;
}
</style>