2014-05-22 39 views
-1

我有這樣的代碼:刪除文件,而不管擴展

@unlink($sMediaDir . $iLastID . '' . '.jpg'); 

如何刪除文件,而不管其擴展名?並使它與.png,.bmp等一起工作?

PHP: Delete a file with any extension?不完全是我在找的東西。 謝謝!

+2

的unlink()需要一個實際的文件名。它沒有通配符/通配符支持。你需要首先'glob()'通配符文件名,然後在結果數組上循環,然後單獨取消每個匹配文件的鏈接。 –

+0

你實際上有'。 ''.'在你的代碼中? –

+0

DOS命令:'delete *。*'---「你確定*是/否*」 - 輸入。即使'del.'過去常常工作。所以,'*。*'應該適用於['glob()'](http://www.php.net/manual/en/function.glob.php)。 *愛情懷舊。* –

回答

0

您可以使用glob()找到要刪除的文件他們

$files = glob($sMediaDir . $iLastID .'.*'); // Look for all files starting with $iLastId 
if(count($files)!==0){ 
    // If files are found, loop through the array to delete them: 
    foreach($files as $k=>$file){ 
     unlink($sMediaDir.$file); 
    } 
} 

我不是完全確信你的變量的值,但你明白我的意思:)

+0

如果計數完全沒用 –

+0

完全沒有。你嘗試使用一個空數組的foreach;)除了'count()'的速度很快之外,如果沒有項目,不需要更慢的foreach – Martijn

+0

謝謝,我會嘗試。我希望有更簡單的解決方案,例如@unlink($ sMediaDir。$ iLastID。''。'。*'); – user3650459