刪除指定目錄下指定字尾的檔案
阿新 • • 發佈:2019-01-23
//定時清除計劃任務日誌檔案,避免佔用太大磁碟空間 $folderpath = "/www/server/log";//要操作的目錄 $deltype = array('log'); foreach ($deltype as $file_type) { clearn_file($folderpath, $file_type); } /** *@param $path資料夾絕對路徑 $file_type待刪除檔案的字尾名 *return void */ function clearn_file($path, $file_type = 'bak') { //判斷要清除的檔案型別是否合格 if (!preg_match('/^[a-zA-Z]{2,}$/', $file_type)) { return false; } //當前路徑是否為資料夾或可讀的檔案 if (!is_dir($path) || !is_readable($path)) { return false; } //遍歷當前目錄下所有檔案 $all_files = scandir($path); foreach ($all_files as $filename) { //跳過當前目錄和上一級目錄 if (in_array($filename, array(".", ".."))) { continue; } //進入到$filename資料夾下 $full_name = $path . '/' . $filename; //判斷當前路徑是否是一個資料夾,是則遞迴呼叫函式 //否則判斷檔案型別,匹配則刪除 if (is_dir($full_name)) { clearn_file($full_name, $file_type); } else { preg_match("/(.*)\.$file_type/", $filename, $match); if (!empty($match[0][0])) { echo $full_name; echo '\n\n'; unlink($full_name); } } } }
多謝:網友