红穆笔记
首頁 語言筆記 PHP刪除指定目錄下面的所有文件和目錄,可排除文件
語言筆記 PHP

PHP刪除指定目錄下面的所有文件和目錄,可排除文件

PHP删除指定目录下面的所有文件和目录,可排除文件

我真的哭了啊!

折騰半天,結果glob這個函數有點坑,無法獲取到.開頭的系統隱藏文件,於是折騰半天,原來發現還有其他函數可以查詢所有文件!

PHP 刪除指定目錄下面的所有文件以及目錄,函數兩個參數,一個是刪除的目錄,一個是不需要刪除的文件數組

function deleteDirectory($directory, $excludes = []) {
    // 判斷目錄是否存在
    if (!is_dir($directory)) {
        throw new Exception("目錄 $directory 不存在");
    }

    // 獲取目錄中的所有文件和目錄
    $files = array_diff(scandir($directory), ['.', '..']);

    // 遍歷所有文件和目錄
    foreach ($files as $file) {
        $path = $directory . DIRECTORY_SEPARATOR . $file;
        // 如果是目錄,遞歸處理子目錄
        if (is_dir($path)) {
            deleteDirectory($path, $excludes);
            rmdir($path);
        }
        // 如果是文件,並且不在不需要刪除的文件列表中,就刪除文件
        elseif (is_file($path) && !in_array($file, $excludes)) {
            unlink($path);
        }
    }
}

該函數有兩個參數:$directory 表示要刪除的目錄,$excludes 表示不需要刪除的文件列表,是一個數組。如果要刪除的目錄不存在,函數會拋出異常。

函數首先使用 scandir 函數獲取目錄中的所有文件和目錄,並使用 array_diff 函數去掉 ...,得到一個僅包含文件和目錄名的數組。然後遍歷所有文件和目錄,如果是目錄,就遞歸調用自身,處理子目錄,並使用 rmdir 函數刪除空目錄;如果是文件,並且不在不需要刪除的文件列表中,就使用 unlink 函數刪除文件。

調用方法

// 刪除 /path/to/directory 目錄下的所有文件和目錄,但不刪除 1.php 和 2.php
$directory = '/path/to/directory';
$excludes = ['1.php', '2.php'];
deleteDirectory($directory, $excludes);
微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 189
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232
php 字符串中是否包含指定字符串的多种方法

php 字符串中是否包含指定字符串的多種方法 語言筆記 PHP

strstrstrstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其餘部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。代碼如下:<?php $email = 'user@example.com'; $domain = strstr($email, …
👁 138

推薦閱讀

php批量替换指定文件夹里面文件名字

php批量替換指定文件夾裏面文件名字 語言筆記 PHP

以下是一個可以實現批量重命名指定文件夾下文件名的 PHP 函數:🔒 隱藏內容:登錄後可查看function batchRenameFiles($dir, $search, $replace) { $files = scandir($dir); // 獲取目錄下所有文件 foreach ($files…
👁 235
(PC+WAP)玻璃钢环保设备类pbootcms网站模板 不锈钢钢材网站源码下载 0068

(PC+WAP)玻璃鋼環保設備類pbootcms網站模板 不鏽鋼鋼材網站源碼下載 0068 實用收藏 pbootcms模板

一款針對玻璃鋼環保設備及不鏽鋼鋼材行業的PbootCMS網站模板,支持PC和WAP端。設計風格偏工業風,能夠展示玻璃鋼製品與不鏽鋼材料的特性。模板內置產品展示與工程案例模塊,有助於環保設備製造企業快速搭建品牌官網。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin…
👁 37
简洁新闻资讯类网站模板 0800

簡潔新聞資訊類網站模板 0800 實用收藏 易優模板

一款針對簡潔新聞資訊類網站的eyoucms模板。設計風格簡潔信息流,適合發佈新聞資訊、行業動態、熱點話題及深度報道。有助於資訊網站在線上吸引讀者,建立媒體影響力。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(Ey…
👁 54
jquery 点击跳转网页顶部

jquery 點擊跳轉網頁頂部 語言筆記 JavaScript

可以使用 jQuery 來實現點擊一個元素後跳轉到網頁頂部。以下是一個簡單的實現方法:$(document).ready(function() { // 監聽元素的點擊事件 $('#my-element').click(function() { // 滾動到頂部 $('html, body').an…
👁 205
(PC+WAP)生活资讯百科门户类网站pbootcms模板 粉色生活门户网站源码下载 0069

(PC+WAP)生活資訊百科門戶類網站pbootcms模板 粉色生活門戶網站源碼下載 0069 實用收藏 pbootcms模板

這套PbootCMS模板採用粉色風格,適用於生活資訊、百科知識及門戶類網站,支持PC與WAP端。設計風格清新甜美,非常適合女性向或生活服務類內容平臺。模板有助於資訊門戶或個人博主搭建一個內容豐富、用戶友好的信息分享站。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:adm…
👁 54