【发布时间】:2018-12-27 12:56:39
【问题描述】:
所以我正在编写一个脚本来从我的服务器中删除图像。基本上我的数据库中有一个表,其中包含建筑物列表,每个建筑物都有多个与id 关联的图像。我将图像保存在服务器上的单个文件夹中,每个图像都具有以下命名格式:
buildingID_imagename.jpg。例如,如果我有一个带有id=23 的建筑物,我的文件夹中的图像将显示为23_imagename1.jpg、23_imagename2.jpg 等。
现在,我知道如何使用 PHP 使用 unlink 函数删除图像了。但是,要删除所有图像,我需要逐个检查每个文件的文件名,进行拆分字符串操作,检查 id 然后删除。当我在该文件夹中有 10000 张图像时,就会出现问题。这将成为一项昂贵的任务,尽管它会起作用。
我的问题,有没有一种简单的方法可以检查图像名称并将其从文件夹中删除?
谢谢
编辑 输入此内容后,我只是想到了一种可能的方法。将我的数据库表中的所有图像链接放入一个数组中,遍历它并删除那些。这是一个很好的方法吗?当然,在将图像放入数组后,我也会将它们从表中删除。
【问题讨论】:
-
如果您将名称存储在数据库表中,您只需检查
file_exists(),然后检查unlink($file)。将表中的名称准备成数组是一个很好的解决方案,而不是使用文件操作。 -
exec('rm 23_*') 这将删除从 23_ 开始的所有文件
-
@Tyr 我认为这是一个很好的解决方案。
-
@ponury-kostek 这很有趣,使用这个有什么问题吗?它是如此简单和真棒
标签: php performance