使用glob和regex匹配目录中的文件

时间:2019-02-12 09:45:50

标签: php glob

我在php中遇到问题。 首先,我动态创建大拇指,并将文件命名为“ thumb_width_heigth_filename.ext” 然后我必须删除所有创建的带有“ filename.ext”的缩略图,这并不复杂。我使用:

$filename = "name.jpg";
glob(realpath($path)."/thumb_[0-9]*_[0-9]*_$filename")

对我来说很好用,但是。 如果我有以下文件:

name.jpg
thumb_20_20_name.jpg
thumb_200_200_name.jpg

我还有类似的文件:

QQ_name.jpg (because system automatically add random 2 symbols if file already exist in folder)
thumb_20_20_QQ_name.jpg

然后我要删除name.jpg和清理代码,并使用我的代码,使所有匹配的文件都包含QQ_name

我知道如何删除文件,请帮助我,在搜索时排除诸如 QQ_name.jpg之类的文件     thumb_ [0-9] _ [0-9] * _ name.jpg

请帮助找出答案。

1 个答案:

答案 0 :(得分:0)

这将找到每个在$ filename末尾具有$ filename的文件。 使用array_map()和unlink(),您可以非常简单地删除所有这些文件。

array_map('unlink', glob('path/*'.$filename));

这将删除

name.jpg
thumb_20_20_name.jpg
thumb_200_200_name.jpg
QQ_name.jpg
thumb_20_20_QQ_name.jpg