PHP刪除當前目錄及其目錄下的所有文件


使用PHP遍歷一個目錄下的所有目錄及文件,並刪除該目錄及其目錄下的所有子目錄和文件,本次代碼通過遞歸的方式來實現。

用到的函數:

scandir($path) 遍歷一個目錄下所有文件並返回數組。
unlink($filename) 刪除文件。
rmdir($path) 只刪除空文件夾。

PHP代碼:

/**
 * 刪除當前目錄及其目錄下的所有目錄和文件
 * @param string $path 待刪除的目錄
 * @note  $path路徑結尾不要有斜杠/(例如:正確[$path='./static/image'],錯誤[$path='./static/image/'])
 */
function deleteDir($path) {

    if (is_dir($path)) {
        //掃描一個目錄內的所有目錄和文件並返回數組
        $dirs = scandir($path);

        foreach ($dirs as $dir) {
            //排除目錄中的當前目錄(.)和上一級目錄(..)
            if ($dir != '.' && $dir != '..') {
                //如果是目錄則遞歸子目錄,繼續操作
                $sonDir = $path.'/'.$dir;
                if (is_dir($sonDir)) {
                    //遞歸刪除
                    deleteDir($sonDir);

                    //目錄內的子目錄和文件刪除后刪除空目錄
                    @rmdir($sonDir);
                } else {

                    //如果是文件直接刪除
                    @unlink($sonDir);
                }
            }
        }
        @rmdir($path);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM