5

在一个目录中,我有类似 123X1.jpg、23X1.jpg、23X2.jpg、4123X1.jpg 的文件名。我需要 glob 模式来仅获取以所需字符串开头的列出的文件。

例如:

'23X' -> 23X1.jpg, 23X2.jpg
'123X' -> 123X1.jpg

模式的最后一部分始终是 X。第一个是数字。

4

2 回答 2

7

这很简单glob()

print_r(glob('/path/to/23X*.jpg'));
print_r(glob('/path/to/123X*.jpg'));
于 2013-05-11T01:22:49.093 回答
1

你可以试试RegexIterator

$fi = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
$regex = new RegexIterator($fi, "/\dX[a-z\d]+/i");

foreach($regex as $file) {
    echo (string) $file, PHP_EOL;
}
于 2013-05-11T01:21:15.367 回答