【发布时间】:2015-01-07 12:42:37
【问题描述】:
我正在尝试以递归方式从指定目录返回所有唯一实例路径。
我正在使用RecursiveDirectoryIterator。我还想省略任何包含“。”的路径实例。在他们中,这就是我遇到麻烦的地方。
这是我要做的测试:
<?php
function test($dir){
$dirArray = []; // the array to store dirs
$path = realpath($dir);
$dirs = new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS);
$objects = new RecursiveIteratorIterator($dirs, RecursiveIteratorIterator::SELF_FIRST);
// loop through all objects and store names in dirArray[]
foreach($objects as $name => $object){
if($object->isDir() && strpos($object->getBasename(), '.') !== true) {
$dirArray[] = $name;
echo "test: " . $object->getBasename() . "\n";
}
}
print_r($dirArray);
}
test('/some/dir');
?>
这段代码几乎可以满足我的需要。它返回所有唯一的目录,但包括带有“。”的目录。在路径名中。
【问题讨论】:
-
您是否有一个存在该问题的示例目录名称?也许像
path/to/directory.io/yeah。所以不应该包括这个? -
都是 git 的东西,所以
/blah/.git/blah/blah
标签: php arrays recursion directory