2016-02-18 52 views
1

我有這樣的代碼:PHP取消鏈接沒有結束(.JPG,.GIF)

<?php 
$filename = $_POST['showDeleteNummer']; 
    if (file_exists("../Images/".$filename)) { 
    @unlink($filename); 
    echo('ja'); 
    } 
    else{ 
    echo ('nein'); 
    } 
?> 

的問題是,我不知道該文件(爲.jpg,.png的結局。 GIF)。是否有代碼刪除文件夾中的特殊名稱(沒有結尾)的文件? 將不會有另一個具有相同名稱的文件。

回答

1

看看文件是否真的存在,你應該設置。

$name = "picture"; 
if(file_exists("$name.png")) { 
    unlink("$name.png"); 
}elseif(file_exists("$name.gif")) { 
    unlink("$name.gif"); 
} elseif(file_exists("$name.jpg")) { 
    unlink("$name.jpg"); 
} 
3

弗朗茨Gleichmanns答案將是一個解決方案,但如果擴展名是.pdf或.doc?更好地使用​​3210以及此解決方案的模式(http://php.net/manual/de/function.glob.php)。

$name = '/path/to/file/with/name'; 
$files = glob($name . '*'); 
var_dump($files); 

這應該給你一個所有類型的擴展名都可用的所有文件的數組。然後你可以遍歷它們刪除它們。

編輯:通過此代碼片段,您可以告知glob哪個文件應以搜索或屏蔽結束。

$name = '/path/to/file/with/name'; 
$files = glob($name . '*.{jpg,png,gif}', GLOB_BRACE); 
var_dump($files); 
+0

問題:這會刪除「name.jpg」;但也「nameofanotherpicture.jpg」 –

+0

感謝指出我這個問題 - 我做了一個原始帖子的編輯,全球只搜索jpg,png,gif結尾。 – andreashager