【问题标题】:Can glob be used to exclude only filenames containing letter characters?可以使用 glob 仅排除包含字母字符的文件名吗?
【发布时间】:2016-01-14 09:24:21
【问题描述】:

我正在尝试计算一个图片库文件夹中的所有文件(所有这些都是图片)。在这个文件夹中,我有名为 1.jpg、2.jpg、3.jpg 等的照片。但是,此文件夹中有几张照片在同一文件夹中的文件名中有一个字母(例如:文件名是 12b.jpg 或 12c.jpg),但我不希望它们被计为文件/图像在我的计数脚本中。

我可以使用 PHP 的 glob 函数来排除包含字母的文件名,或者只包含包含纯数字的文件名吗?

我想我可以使用 REGEX 来做到这一点,但我对它不够熟悉,不知道如何排除特定字符以外的任何内容,而不是限制一种字符(即字母)。

当前代码是:

// Get Exterior Image Count
$exteriorImgDirectory = "images/exterior-photos/";
if (glob($exteriorImgDirectory . "*.jpg") != false)
{$exteriorCount = count(glob($exteriorImgDirectory . "*.*"));}

【问题讨论】:

  • 使用来自列表 glob 返回的 grep 过滤器正则表达式。在 Perl 中,它类似于 @new_list = grep { /^\d+\.jpg/ } @old_list;

标签: php regex


【解决方案1】:

只需创建正确的正则表达式。这样的事情应该可以工作。

glob($exteriorImgDirectory . "[0-9]+.jpg")

如果你想测试正则表达式,有一些有用的网站。一个例子:Rubular

【讨论】:

  • 我能够使用glob($exteriorImgDirectory . "*[0-9].jpg")使其工作
猜你喜欢
  • 1970-01-01
  • 2018-11-03
  • 2015-11-04
  • 2012-08-22
  • 2021-12-02
  • 2012-09-07
  • 2016-01-02
  • 2020-12-12
  • 1970-01-01
相关资源
最近更新 更多