作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主

文章目录


前言

为什么输出文件夹里面的文件+文件夹时,会出现. …呢?

php案例 批量删除某个目录下的文件_php


这是系统自带的两个特殊隐藏目录。一个.是指代当前目录本身,一个…指代上级目录。平时隐藏了而已。你遍历出来不想显示直接在判断条件里加如果目录等于.或者…就不输出,直接跳过就完了

代码

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>";//输出删除成功的标识
}
?>

效果

php案例 批量删除某个目录下的文件_开发语言_02

php案例 批量删除某个目录下的文件_php_03


php案例 批量删除某个目录下的文件_html_04


php案例 批量删除某个目录下的文件_开发语言_05