2015-01-20 1 views
0

У меня есть папка с несколькими изображениями, но меня интересуют изображения с таким названием, как: "Images_123456_nature_XL.jpg, Images_458599_3d_L.jpg, Images_065455_animals_XL.jpg". Так что попробуйте функцию glob так:Шаблоны регулярных выражений Glob - PHP

$images = glob($value."/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+).{jpg,png,gif}", GLOB_BRACE); 

Но это, кажется, не work.Any помощи с этим! Очень признателен.

+5

Глобус не принимает регулярное выражение. Он принимает маску. 'glob ($ value."/Images _ *. {jpg, png, gif} ", GLOB_BRACE)' может помочь. –

ответ

0

glob() не принимает регулярных выражений, он принимает простые шаблоны, только заменяя * шутки на что угодно, и? одним символом.

Вы можете попробовать что-то вроде:

$files = array_filter(glob('*.{jpg,png,gif}', GLOB_BRACE), function($file) { 
    return preg_match('/^Images_(\d+)_([a-zA-Z]+)_([A-Z]+)\.(jpg|png|gif)$/', basename($file)); 
}); 

Это не очень эффективен в плане памяти (как Glob() будет возвращать все файлы перед процеживают), но это работает, по крайней мере.

 Смежные вопросы

  • Нет связанных вопросов^_^