【问题标题】:Filter file names using glob?使用 glob 过滤文件名?
【发布时间】:2012-08-07 06:05:45
【问题描述】:

我有文件名的文件列表,格式为 ttttyyyyymmdd.txt,即时间戳前 4 位。这是一个示例 1322120120804.txt。tttt 是为每个文件生成的随机整数。我想使用 php glob 只选择当天发布的文件。所以在我的代码中我目前有

$dir="myfiles/";
glob($dir."1322".date('Ymd'));

此代码仅选择 1 个前缀为 1322 的文件。如何使其成为动态文件,以便读取所有文件以生成此日期。 谢谢

【问题讨论】:

    标签: php database file web-applications glob


    【解决方案1】:

    试试这个:

    $dir="myfiles/";
    glob($dir."*".date('Ymd'));
    

    【讨论】:

    • 我试过了,但它不起作用。它返回一个空数组。我们如何修改它?
    • 成功了。我的目录有错字。我通过检查它是否存在来即兴发挥它 if(is_dir($dir)){ //then action }
    【解决方案2】:

    glob 理解 [0-9] 之类的字符组,因此您可以编写:

     glob($dir."[0-9][0-9][0-9][0-9]".date('Ymd'));
    

    在类似 linux 的系统上,php 的 glob 是一个类似名称的 posix 函数的包装器,因此读取 posix manual 可能有助于搜索模式功能。

    【讨论】:

    • 首先,感谢您的贡献。但它不起作用。它返回一个空数组,但文件在那里,我们正在满足这个条件。还有什么建议。
    • 可能是模式末尾缺少 hte .txt 吗?当我尝试它时,它似乎正在工作。
    • 我的 $dir 首先遇到了问题。无论如何我都不知道该怎么做,你们给了我这个想法。谢谢一堆。它工作完美。我喜欢它 [0-9] 而不是 * 因为它充当一种验证。我也修复了.txt
    猜你喜欢
    • 2023-02-23
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    相关资源
    最近更新 更多