提示:謹慎操作,因爲刪除的文件不會進入回收站!
header("Content-type: text/html;charset=utf-8");
error_reporting(E_ALL ^E_NOTICE^E_WARNING);
//從文件夾裏刪除指定後綴的文件
class delFileByExt{
private $delfile_arr=array('xls');//要刪除的文件格式
static $num=0;
static $del_num=0;
static $delog=array();
public $dir;
function __construct($dir)
{
$this->dir=$dir;
}
public function read_all($dir){
if(!is_dir($dir)){
return false;
}
$handle = opendir($dir);
if($handle){
while(($fl = readdir($handle)) !== false){
$temp = $dir.DIRECTORY_SEPARATOR.$fl;
//如果不加 $fl!='.' && $fl != '..' 則會造成把$dir的父級目錄也讀取出來
if(is_dir($temp) && $fl!='.' && $fl != '..'){
echo '目錄:'.$temp.'<br>';
$this->read_all($temp);
}else{
if($fl!='.' && $fl != '..'){
if($temp){
self::$num++;
$arr_path=explode('.',$temp);
$ext=end($arr_path);
echo '---文件:'.$temp.'<br>';
if(in_array($ext,$this->delfile_arr)){
$return_state=unlink($temp);
if($return_state){
echo '<b style="color:red;">---已刪除:'.$temp.'</b><br>';
self::$del_num++;
if(empty(self::$delog[$ext])){
self::$delog[$ext]=1;
}else{
self::$delog[$ext]+=1;
}
}
}
}
}
}
}
}
}
//統計文件總數
public function countNum(){
echo '該文件夾:'.$this->dir.'統計如下:';
echo '--一共有'.self::$num.'個文件!<br>';
echo '----其中有'.self::$del_num.'個後綴爲'.join(',',$this->delfile_arr).'的文件已經被刪除!<br>';
foreach (self::$delog as $k=>$v){
echo '------包含有'.$v.'個文件 '.$k.' 格式的文件!<br>';
}
}
}
//使用
$obj=new delFileByExt('D:\PROJECT\jysx_single\public\file\upload\2015-07\15');
$obj->read_all($obj->dir);
$obj->countNum();