$files = glob($_SERVER['DOCUMENT_ROOT'].'/city/'.$cityen.'/foto/'.$cityen.'_[1-99].jpg');
Помогите с шаблоном для функции glob нужны фото с индексами от 1 до 99. Работает только для [1-9]
Спустя 8 минут, 26 секунд (18.01.2012 - 20:30) inpost написал(а):
если можно там как в обычной регулярке, то [0-9]{1,2}
Спустя 4 минуты, 36 секунд (18.01.2012 - 20:35) Xes написал(а):
$files = glob($_SERVER['DOCUMENT_ROOT'].'/city/'.$cityen.'/foto/'.$cityen.'_[0-9][0-9].jpg');
Ага, так работает. Но файлы надо _01, _09 именовать. _1, _9 -НЕА.
В традицинном стиле [0-9]{1,2} так не пашет.
Спустя 3 часа, 3 минуты, 54 секунды (18.01.2012 - 23:39) killer8080 написал(а):
$dir = $_SERVER['DOCUMENT_ROOT'].'/city/'.$cityen.'/foto';
$files = array();
if($handle = opendir($dir)){
while(($file = readdir($handle)) !== false){
if(preg_match('#^'.preg_quote($cityen, '#').'_\d{1,2}\.jpg$#i', $file))
$files []= $dir.'/'.$file;
}
closedir($handle);
}
Спустя 2 минуты, 5 секунд (18.01.2012 - 23:41) Winston написал(а):
killer8080
Проще scandir, а потом уже обойти массив с именами.
А еще проще, так это glob, о котором выше разговор.
Проще scandir, а потом уже обойти массив с именами.
А еще проще, так это glob, о котором выше разговор.
Спустя 9 минут, 58 секунд (18.01.2012 - 23:51) Xes написал(а):
НУ с glob я думаю беспорно проще. Мне легче условиться что фотки я буду именовать с ведущим нулем _06.jpg
Спустя 1 минута, 57 секунд (18.01.2012 - 23:53) killer8080 написал(а):
Цитата (Winston @ 18.01.2012 - 22:41) |
Проще scandir, а потом уже обойти массив с именами. |
Проще не значит лучше

Если в каталоге очень много файлов, а нужных из них мало, то это неоправданный перерасход памяти. Сначала scandir сделает почти то что и мой код - обойдет все файлы каталога, забив массив всем подряд, потом из этого массива ты создашь дублирующий массив,в котором останутся только нужные элементы - это как минимум не рационально, если в каталоге тысячи файлов, а нужных из них десяток разница будет огромной.
glob в данном случае не подошла из-за недостаточной гибкости её шаблонов.
Спустя 17 минут, 23 секунды (19.01.2012 - 00:10) asokol написал(а):
glob('{_[1-9].jpg,_[1-9][0-9].jpg}', GLOB_BRACE);Работоспособность не проверял.
Спустя 4 минуты, 36 секунд (19.01.2012 - 00:15) killer8080 написал(а):
asokol
Дважды шуршать по одному и тому же каталогу не лучший вариант
Дважды шуршать по одному и тому же каталогу не лучший вариант

Цитата (Xes @ 18.01.2012 - 22:51) |
Мне легче условиться что фотки я буду именовать с ведущим нулем _06.jpg |
А если потом их станет больше ста? Будешь все файлы переименовывать, чтоб код был