前言
为什么输出文件夹里面的文件+文件夹时,会出现. …呢?
这是系统自带的两个特殊隐藏目录。一个.是指代当前目录本身,一个…指代上级目录。平时隐藏了而已。你遍历出来不想显示直接在判断条件里加如果目录等于.或者…就不输出,直接跳过就完了
代码:
index.php
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form method="post" action="check.php"> <center>请输入目录路径</center> <input type='text' name='path' size='25'><br> <input type="submit" value='查看' > </form> </body> </html>
check.php
<?php if($_POST['path']){ $path_start = $_POST['path']; //获取绝对路径 $path = opendir($path_start); //打开目录 ?> <center>目录信息如下表所示</center> <table border='0' cellspacing='0' cellpadding='0' width='450' align='center'> <tr align="left" bgcolor="#cccccc"> <th>文件名</th><th>类型</th> </tr> <?php $str = ''; while($file=readdir($path)){//readdir的意思是获取某个目录下的所有文件+文件夹(不包含下下级哈) $dir = $path_start."/".$file; //获取完整的路径和文件名称 $str .= '<tr align=\'center\'>'; $str .= '<td>'.$file.'</td>'; $str .= '<td>'.(filetype($dir)=='dir'?'文件夹':'文件').'</td>';//看这个是文件还是文件夹 $str .= '</tr>'; } echo $str; ?> </table> <?php } ?>
效果:
提交的是:
新建文件夹的目录结构是:
名字为1的文件夹里面还有文件呢: