前言
为什么输出文件夹里面的文件+文件夹时,会出现. …呢?
这是系统自带的两个特殊隐藏目录。一个.是指代当前目录本身,一个…指代上级目录。平时隐藏了而已。你遍历出来不想显示直接在判断条件里加如果目录等于.或者…就不输出,直接跳过就完了
代码
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> <style> table{ border-collapse:collapse; border:1px solid #ccc; } table td{ border:1px solid #ccc; line-height:22px; background:#eee; } </style> </head> <body> <?php $_POST['path'] = 'C:\Users\Administrator\Desktop\新建文件夹';//获取要删除的某一个目录下的文件。只删除文件哈 if($_POST['path']){ $path_start = $_POST['path']; //获取绝对路径 $path = opendir($path_start); //打开目录 ?> <center>批量删除目录文件</center> <form action='change.php' method='post'> <table border='0' cellspacing='0' cellpadding='0' width='450' align='center'> <tr align="left" bgcolor="#cccccc"> <th>选择</th><th>文件名</th><th>类型</th> </tr> <?php $str = ''; while($file=readdir($path)){ $dir = $path_start."/".$file; //获取完整的路径和文件名称 $str .= '<tr align=\'center\'>'; $str .= '<td><input type="checkbox" value="'.$file.'" name="filename[]"></td>'; $str .= '<td>'.$file.'</td>'; //输出文件 $str .= '<td>'.(filetype($dir)=='dir'?'文件夹':'文件').'</td>';//判断时文件还是文件夹 $str .= '</tr>'; } echo $str; ?> </table> <?php } ?> <center><input type="submit" value='批量删除'></center>//提交到//change.php文件中 </form> </body> </html>
check.php
<?php header('Content-type:text/html;charset=utf-8');//字符集为utf-8 if($_POST['filename']){//获取要删除的文件。可以是一个也可以是多个 $temp = ''; foreach($_POST['filename'] as $k=>$v){//遍历要删除的文件 $temp.=' '.$v; unlink('C:/Users/Administrator/Desktop/新建文件夹/'.$v);//使用unlink删除文件。unlink不能喊出文件夹哦 } echo "<script>alert('删除文件".$temp."成功!');location='index.php';</script>";//输出删除成功的标识 } ?>
效果