簡體   English   中英

從服務器PHP刪除文件的有效方法

[英]Efficient way to delete files from server PHP

因此,我正在編寫腳本以從服務器中刪除圖像。 基本上,我的數據庫中有一個表,其中包含建築物列表,每個建築物都有與id關聯的多個圖像。 我將圖像保存在服務器上的單個文件夾中,每個圖像具有以下命名格式: buildingID_imagename.jpg 例如,如果我有一幢id23的建築物,則文件夾中的圖像將顯示為23_imagename1.jpg23_imagename2.jpg等。

現在,我知道如何使用PHP的unlink函數刪除圖像。 但是,要刪除所有圖像,我需要一個一個地檢查每個文件的文件名,進行分割字符串操作,檢查ID,然后刪除。 當我在該文件夾中有10000張圖像時,就會出現此問題。 盡管它可以工作,但這卻成為一項昂貴的任務。

我的問題是,有一種簡單的方法可以檢查圖像名稱並將其從文件夾中刪除嗎?

謝謝

編輯鍵入此內容后,我只是想到了一種可能的方法。 將所有圖像鏈接從數據庫表中獲取到一個數組中,循環遍歷並刪除其中的那些。 那會是個好方法嗎? 當然,將圖像放入數組后,我還將它們從表中刪除。

遍歷數據集,檢查文件是否存在並刪除文件。

如果您認為此操作可能有成千上萬個文件,則可以將其作為cron作業執行。

if(file_exists($fileName)){
    unlink($fileName);
}

您也可以使用

<? array_map ('unlink',glob('23_imagename*.jpg')); ?> // this example deletes all files with .jpg extension that starts with 23_imagename

使用glob函數,您可以應用正則表達式來有效地查找要刪除的文件

http://php.net/manual/en/function.glob.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM