2013-10-15 40 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

對不起,我不是說先進的得到的只有最後一個文件夾的名稱。我只是用dirname($ iterator-> key())替換$ iterator-> key()?因爲這只是刪除文件名.. –

+0

然後把它放在basename() - 這將只返回最後的文件夾名稱,而不是完整的文件夾路徑 –

+0

哦真棒,任何想法只列出不包含搜索的文件夾名稱爲文件名? –