【问题标题】:Delete files getting names from array without knowing extension在不知道扩展名的情况下删除从数组中获取名称的文件
【发布时间】:2013-12-11 14:30:52
【问题描述】:

我有一个包含多个文件名的数组没有扩展名(下面,数字是文件的名称):

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

我想在不知道它们的扩展名(可能是 .jpg .JPG .GIF .jpeg 等)的情况下从服务器中删除这些文件。

我尝试使用 GLOB,但我不明白如何教 PHP 使用通配符并同时从数组中获取文件的名称。

【问题讨论】:

  • 你能显示你尝试过的代码吗?
  • 很明显,但是如果您有 3 个文件名称相同但扩展名不同,则将它们全部删除。
  • 文件名对应于数据库的唯一ID。

标签: php unlink


【解决方案1】:

假设 $names 是你的数组:

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

【讨论】:

  • 抱歉,$filename 为空。我的数组被称为 $orphans,print_r($orphans) 确认它有数据。我将您的 $names 更改为 $orphans 但 $filename 为空。
  • 我发布的脚本假定您要删除的文件与您的 PHP 脚本位于同一目录中。如果不是,您应该添加目录路径 (foreach($PATH.glob($name.'*') as $filename))。
  • 抱歉还是空的。不知道为什么。脚本在/php,要删除的文件在/pictures。我添加了路径:foreach("../pictures/".glob($name."*") as $filename),然后是unlink("../pictures/".$filename),但它不起作用。
  • @Nicero 抱歉,我的评论中出现了愚蠢的错字。我已经使用路径更新了正确代码的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 2019-09-09
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多