PHP 取消链接而不带结尾(.jpg,.gif)


PHP unlink without the ending (.jpg, .gif)

我有这个代码:

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

问题是,我不知道文件的结尾(.jpg、.png、.gif)。是否有用于删除文件夹中具有特殊名称(不带结尾)的文件的代码?不会有另一个同名文件。

Franz Gleichmanns的答案将是一种解决方案,但是如果扩展是.pdf还是.doc?最好将此解决方案的模式一起使用glob() (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);

只需首先查看文件是否确实存在,您应该进行设置。

$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");
}