使用 PHP 刪除資料夾中的所有檔案


什麼是 PHP?

PHP 是一種廣泛使用的伺服器端指令碼語言,主要用於 Web 開發。它代表“超文字預處理器”,以其多功能性和易用性而聞名。PHP 透過在 HTML 中嵌入程式碼來建立動態網頁,允許開發者生成動態內容、與資料庫互動、處理表單資料以及執行各種其他伺服器端任務。它提供了廣泛的功能和特性,包括對多個平臺的支援、大量的庫和框架,這些都促進了快速開發。PHP 是一種開源語言,擁有龐大且活躍的社群,不斷推動著它的發展以及大量外掛和擴充套件的建立。它的靈活性和可擴充套件性以及豐富的文件使其成為構建動態網站和 Web 應用程式的熱門選擇。

使用 PHP 刪除資料夾中的所有檔案

要使用 PHP 刪除資料夾中的所有檔案,可以使用 glob() 函式和 scandir() 函式。

方法 1

使用 glob() 函式

在 PHP 中,glob() 函式用於檢索與指定模式匹配的檔案或目錄路徑。它根據萬用字元在目錄中搜索檔案或目錄,並返回匹配項的陣列。

語法

glob() 函式的語法如下所示。

array|false glob(string $pattern, int $ flags = 0)

引數

  • $pattern:這是必需的引數,表示要與檔案或目錄匹配的模式。

  • $flags(可選):此引數用於修改 glob() 函式的行為。它可以採用各種標誌來控制匹配行為。一些常用的標誌包括

  • GLOB_BRACE:擴充套件 {a,b,c} 語法以匹配多個模式。

  • GLOB_ONLYDIR:僅匹配目錄。

  • GLOB_NOSORT:按自然順序返回檔案,不進行排序。

返回值

glob() 函式返回一個包含與指定模式匹配的檔案或目錄名稱的陣列。如果沒有任何檔案匹配該模式,則返回一個空陣列。如果發生錯誤,則返回 false。

示例

以下是如何使用 glob() 函式刪除資料夾中所有檔案的示例。

$folderPath = 'path/folder'; 
$fileList = glob($folderPath . '/*');
foreach ($fileList as $file) {
   if (is_file($file)) {
      unlink($file);
   }
}

程式碼說明

提供的程式碼片段使用 PHP 刪除指定資料夾中的所有檔案。它首先使用 glob() 函式檢索資料夾中的檔案列表。然後,它遍歷列表中的每個檔案,使用 is_file() 檢查它是否為檔案,如果是,則使用 `unlink()` 函式刪除它。此程式碼應謹慎使用,因為它會永久刪除資料夾中的所有檔案。請確保提供正確的資料夾路徑並在執行程式碼之前進行審查。

方法 2

使用 Scandir()

在 PHP 中,scandir() 函式用於檢索指定目錄中檔案和目錄的列表。它返回一個包含檔案和目錄名稱的陣列。

語法

Scandir() 函式的語法如下所示。

array scandir(string $directoryPath, int $sortingOrder = 
SCANDIR_SORT_ASCENDING, resource $context = null)

引數

  • $directoryPath:這是必需的引數,表示要掃描的目錄的路徑。

  • $sortingOrder(可選):此引數指定結果陣列中專案的排序順序。它可以採用以下值

  • SCANDIR_SORT_ASCENDING(預設):按升序排序專案。

  • SCANDIR_SORT_DESCENDING:按降序排序專案。

  • SCANDIR_SORT_NONE:不執行任何排序。

  • $context(可選):此引數允許您為目錄流指定上下文。它通常用於資源訪問控制。

返回值

scandir() 函式返回一個包含指定目錄中所有專案(檔案和目錄)名稱的字串陣列。它包括表示當前和父目錄的專案名稱(. 和 ..)。

示例

以下是如何使用 Scandir() 刪除資料夾中所有檔案的示例

function deleteAllFiles($folderPath) {
   $files = scandir($folderPath);
   foreach ($files as $file) {
      if ($file !== '.' && $file !== '..') {
         $filePath = $folderPath . '/' . $file;
            
         if (is_file($filePath)) {
            unlink($filePath);
         }
      }
   }
}

程式碼說明

程式碼演示了一個名為 deleteAllFiles() 的方法,該方法在 PHP 中刪除指定資料夾中的所有檔案。它利用 scandir() 函式獲取資料夾中的檔案陣列。透過迭代每個專案並排除當前和父目錄,它構建檔案路徑並使用 is_file() 檢查專案是否為檔案。如果是,則使用 unlink() 刪除該檔案。執行此程式碼時請謹慎操作,以防止意外刪除檔案。

結論

總之,本教程全面介紹瞭如何使用 PHP 刪除資料夾中的所有檔案。本教程中概述的步驟可應用於需要從特定目錄中刪除多個檔案的各種場景。通過了解檔案刪除的重要性以及潛在的用例,您可以利用從本教程中學到的知識來有效地管理檔案系統並在 PHP 專案中維護資料完整性。

更新於:2023-07-28

835 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告