2013-05-11 3 views
3

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

Например:

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

Последняя часть часть рисунка всегда является X. Первый из них представляет собой число.

ответ

3

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

print_r(glob('/path/to/23X*.jpg')); 
print_r(glob('/path/to/123X*.jpg')); 
+1

@dstonek: Да, 'glob' достаточно силен, чтобы даже позволить вам сделать' Glob ('/ */* /123X*.jpg ') ', но, конечно, это будет медленнее. –

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; 
} 
Смежные вопросы