首頁 > 後端開發 > php教程 > 如何在 PHP 中遞歸刪除目錄及其內容?

如何在 PHP 中遞歸刪除目錄及其內容?

Patricia Arquette
發布: 2024-12-08 03:58:08
原創
583 人瀏覽過

How to Recursively Delete Directories and Their Contents in PHP?

在PHP 中遞歸刪除目錄及其內容

當需要在PHP 中刪除目錄及其整個結構時,通常會使用遞歸方法尋求。這不僅涉及有效清除目標目錄中的文件,還涉及所有嵌套子目錄及其內容。

解:

PHP 手冊的 rmdir使用者貢獻部分提供了此遞歸刪除場景的實際實現:

function rrmdir($dir) {
    if (is_dir($dir)) {
        $objects = scandir($dir);
        foreach ($objects as $object) {
            if ($object != "." && $object != "..") {
                if (is_dir($dir . DIRECTORY_SEPARATOR . $object) && !is_link($dir . "/" . $object)) {
                    rrmdir($dir . DIRECTORY_SEPARATOR . $object);
                } else {
                    unlink($dir . DIRECTORY_SEPARATOR . $object);
                }
            }
        }
        rmdir($dir);
    }
}
登入後複製

如何它的工作原理:

  1. rrmdir() 函數首先驗證指定的$dir 是否是一個目錄。
  2. 然後使用 scandir 迭代目錄的內容。
  3. 對於每個檔案或子目錄遇到:

    • 如果它是一個子目錄(不是「.」或「..」),它會檢查它是否為一個真正的子目錄(不是連結)並遞歸呼叫rrmdir() 來刪除其內容。
    • 否則直接刪除
  4. 最後,一旦所有內容都被刪除,原始目錄($dir)就會被刪除。

以上是如何在 PHP 中遞歸刪除目錄及其內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板