【问题标题】:Match files in directory with glob and regex使用 glob 和正则表达式匹配目录中的文件
【发布时间】:2019-02-12 09:45:50
【问题描述】:

我在 php 中遇到了 glob 问题。 首先,我动态创建拇指并将文件命名为“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

请帮忙看看。

【问题讨论】:

    标签: php glob


    【解决方案1】:

    这会查找在 $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
    

    【讨论】:

    • 感谢您的回答,我知道如何删除文件,当我尝试仅删除“name.jpg”和拇指名称时,我不得不排除文件“QQ_name.jpg,thumb_20_20_QQ_name.jpg” .jpg
    猜你喜欢
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多