2011-08-05 55 views
2

我的目標上市:
要訪問未在MySQL數據庫中列出的文件夾中刪除圖像。
我希望這能夠在我登出我的門戶時運行。
任何想法如何做到這一點?由於圖像不在一個MySQL數據庫通過PHP

數據庫
數據庫名稱:圖像列表

id, image, thumbnail 
1, image1.jpg, image1thumb.jpg 
2, image2.jpg, image2thumb.jpg 
3, image3.jpg, image3thumb.jpg 

文件夾
文件夾名稱:圖像

image1.jpg 
image1thumb.jpg 
image2.jpg 
random1.jpg 
image2thumb.jpg 
image3.jpg 
mage3thumb.jpg 
random2.jpg  
etc... 
+3

使用[scandir](http://www.php.net/manual/en/function.scandir.php)和另一個mysql列出的文件數組創建文件夾圖像名稱的數組* a1 *。 對於* a1 *中的每個項目,檢查它是否包含在* a2 *中,如果它不包含,則用[unlink](http://php.net/manual/en/function.unlink)刪除項目所代表的文件.php) –

+3

只需添加..你發佈的內容是你想寫什麼的描述,但是你沒有提出任何問題或提供任何你想要的幫助。在StackOverflow的官方術語中,這是「不是真正的問題」。請下一次更具體一些;這不是一個免費的編碼服務,它是一個經常性編程問題的答案庫,無法用最少的研究來回答([你可以]](http://www.php.net/manual/en/funcref.php ))。 –

+0

@kmels我想看看,你將如何處理2個數組,每個10000000個項目,哈哈。 –

回答

2

可以使用

得到的圖像文件名的字母順序

SELECT image, thumbnail FROM imagelist ORDER BY image

及更高版本獲取所有使用scandir函數的文件列表。這會默認給你目錄中的所有文件。

那麼你可以通過一個抓取行之一,如果這與數組值

如果是匹配的,繼續下一個數組值和fecth行

如果沒有,刪除文件使用unlink PHP函數, 然後移動到下一個數組值,直到值與行值匹配。如果匹配繼續如上步驟。

這樣你就可以在一個mysql查詢和一個dirscan中完成這個任務。

0

使用readdir掃描文件夾並檢查每個路徑,如果此路徑存在於您的表中。

相關問題