2013-12-11 24 views
1

我已經包含了一些文件名沒有擴展(以下數字是文件的名稱)的數組:刪除文件正從數組名不知道分機

[1] => 214 
[2] => 12 
[3] => 2763 
[4] => 356 
[5] => 87 

我想從服務器刪除這些文件而不知道它們的擴展名(可能是.jpg .JPG .GIF .jpeg等)。

我試過使用GLOB,但我不明白如何教PHP使用通配符,並在同一時間獲取數組中的文件的名稱。

+1

你能告訴碼你嘗試? – tptcat

+0

明顯,但如果您有3個文件具有相同的名稱但擴展名不同,那麼您將全部刪除它們。 – Nanne

+0

文件名稱對應於數據庫的唯一ID。 – Nicero

回答

1

假設$names是你的數組:

$path = "../pictures/"; 
foreach ($names as $name) { 
    foreach (glob($path . $name . '*') as $filename) { 
    unlink(realpath($filename)); 
    } 
} 
+0

很抱歉,$ filename是空的。我的數組被稱爲$ orphans,print_r($ orphans)確認它有數據。我把你的$名稱變爲$孤兒,但是$ filename是空的。 – Nicero

+0

我發佈的腳本假定您要刪除的文件與您的PHP腳本位於同一目錄中。如果沒有,你應該添加路徑到目錄('foreach($ PATH.glob($ name。'*')$ filename)')。 – zavg

+0

抱歉,仍然爲空。不知道爲什麼。腳本在/ php中,要刪除的文件在/圖片中。我添加了路徑:'foreach(「../ pictures /」。glob($ name。「*」)as $ filename)'然後'unlink(「../ pictures /".$ filename)'但它沒有工作。 – Nicero

相關問題