2011-05-13 114 views
0

我想使用RecursiveIteratorIterator来显示“顶级目录”,在我的示例布局和puffar,但我不能得到它的工作。结构如下:删除重复项RecursiveIteratorIterator

| images | 
    => layout 
     =>lab 
    => puffar 

,其结果是

layout 
layout 
layout 
layout/lab 
layout/lab 
puffar 
puffar 


$directory = 'images'; 

    $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)); 

    while($it->valid()) { 

    if (!$it->isDot()) {  
     echo $it->getSubPath() . "\n";  
    } 

    $it->next(); 
    } 

,我不能去工作,另一件事是,如果我改变

$directory = 'newsletter.site.se/images'; 

目录路径是不显示任何东西 如果有人能帮助我,那将是一种幻想。谢谢linda

回答

2

如果你只是想显示顶级目录,你真的需要RecursiveDirectoryIterator吗?

相反,你可以使用:

<?php 
foreach (new DirectoryIterator('.') as $entry) { 
    if (!$entry->isDot() && $entry->isDir()) { 
     echo $entry, '<br />'; 
    } 
} 

如果你想要的所有目录,尝试:(例如)

<?php 
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('.'), RecursiveIteratorIterator::SELF_FIRST); 
foreach ($it as $entry) { 
    if ($entry->isDir()) { 
     echo $entry, '<br />'; 
    } 
} 

关于你的第二个问题,你检查的路径是正确的,可读为PHP?