Шаблон глобуса, соответствующий первой части имени файла

В каталоге у меня есть такие имена файлов, как 123X1.jpg, 23X1.jpg, 23X2.jpg, 4123X1.jpg. Мне нужен шаблон глобуса, чтобы получать только перечисленные файлы, начинающиеся с необходимой строки.

Например:

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

Последняя часть шаблона всегда представляет собой X. Первая часть представляет собой число.


person dstonek    schedule 11.05.2013    source источник


Ответы (2)


Это тривиально с glob():

print_r(glob('/path/to/23X*.jpg'));
print_r(glob('/path/to/123X*.jpg'));
person Alix Axel    schedule 11.05.2013
comment
@dstonek: Да, glob достаточно мощный, чтобы даже позволить вам сделать glob('/*/*/123X*.jpg'), но, конечно, он будет намного медленнее. - person Alix Axel; 11.05.2013

Вы можете попробовать 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;
}
person Baba    schedule 11.05.2013