2013-10-15 3 views
0

Я пытаюсь перечислить все папки, которые не содержат файл koala.jpg, я попробовал этот метод:GlobIterator список папок, которые не содержат

$iterator = new GlobIterator('/storage/websites/site/images/menu_slider/*/koala.*', GlobIterator::CURRENT_AS_PATHNAME); 

if (!$iterator->count()) { 
    echo 'No matches'; 
} else { 
    $n = 0; 

    printf("Matched %d item(s)\r\n".'<br />', $iterator->count()); 

    foreach ($iterator as $item) { 
     printf("[%d] %s\r\n".'<br />', ++$n, $iterator->key()).'<br />'; 
    } 
} 

Единственная проблема, это только перечисляет файлы которые содержат koala.jpg, и мне нужно знать, какие папки его не содержат. а также как бы получить значение * (в данном случае 235x141) для каждого?

возвращается:

Matched 14 item(s) 
[1] /storage/websites/site/images/menu_slider/235x141/koala.jpg 
[2] /storage/websites/site/images/menu_slider/235x200/koala.jpg 
[3] /storage/websites/site/images/menu_slider/240x100/koala.jpg 
[4] /storage/websites/site/images/menu_slider/240x200/koala.jpg 
[5] /storage/websites/site/images/menu_slider/250x200/koala.jpg 
[6] /storage/websites/site/images/menu_slider/250x300/koala.jpg 
[7] /storage/websites/site/images/menu_slider/250x400/koala.jpg 
[8] /storage/websites/site/images/menu_slider/365x200/koala.jpg 
[9] /storage/websites/site/images/menu_slider/470x200/koala.jpg 
[10] /storage/websites/site/images/menu_slider/470x60/koala.jpg 
[11] /storage/websites/site/images/menu_slider/480x100/koala.jpg 
[12] /storage/websites/site/images/menu_slider/595x200/koala.jpg 
[13] /storage/websites/site/images/menu_slider/960x100/koala.jpg 
[14] /storage/websites/site/images/menu_slider/960x200/koala.jpg 

Любая помощь Сильно Apreciated.

ответ

1

использование dirname($iterator->key())

также отметить basename(dirname($iterator->key())) получить только последнее имя папки, если это необходимо

+0

жаль, что им не продвинутым. Я просто заменяю $ iterator-> key() с dirname ($ iterator-> key())? Поскольку это просто просто удаляет имя файла .. –

+0

затем заключить его в basename() - это вернет только последнее имя папки, а не полный путь к папке –

+0

oh awesome, любая идея только перечислить имена папок, которые не содержат поиск для имени файла? –

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