[英]Most efficient way to serve files through a PHP server from Google Cloud Storage?
[英]Efficient way to delete files from server PHP
因此,我正在編寫腳本以從服務器中刪除圖像。 基本上,我的數據庫中有一個表,其中包含建築物列表,每個建築物都有與id
關聯的多個圖像。 我將圖像保存在服務器上的單個文件夾中,每個圖像具有以下命名格式: buildingID_imagename.jpg
。 例如,如果我有一幢id
為23
的建築物,則文件夾中的圖像將顯示為23_imagename1.jpg
, 23_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函數,您可以應用正則表達式來有效地查找要刪除的文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.