1 <?php 2 /** 3 *@param $path文件夹绝对路径 $file_type待删除文件的后缀名 4 *return void 5 */ 6 function clearn_file($path, $file_type = 'bak') 7 { 8 //判断要清除的文件类型是否合格 9 if (!preg_match('/^[a-zA-Z]{2,}$/', $file_type)) { 10 return false; 11 } 12 //当前路径是否为文件夹或可读的文件 13 if (!is_dir($path) || !is_readable($path)) { 14 return false; 15 } 16 //遍历当前目录下所有文件 17 $all_files = scandir($path); 18 foreach ($all_files as $filename) { 19 //跳过当前目录和上一级目录 20 if (in_array($filename, array(".", ".."))) { 21 continue; 22 } 23 //进入到$filename文件夹下 24 $full_name = $path . '/' . $filename; 25 //判断当前路径是否是一个文件夹,是则递归调用函数 26 //否则判断文件类型,匹配则删除 27 if (is_dir($full_name)) { 28 clearn_file($full_name, $file_type); 29 } else { 30 preg_match("/(.*).$file_type/", $filename, $match); 31 if (!empty($match[0][0])) { 32 echo $full_name; 33 echo '<br>'; 34 unlink($full_name); 35 } 36 } 37 } 38 } 39 40 //测试一下 41 $folderpath = $_SERVER["DOCUMENT_ROOT"] . "/abc";//要操作的目录 42 $deltype = array('gif', 'jpg', 'pdf'); 43 foreach ($deltype as $file_type) { 44 clearn_file($folderpath, $file_type); 45 }