Php 递归目录迭代器结果:从结果路径中筛选出特定字符
我试图递归地返回指定目录中的所有唯一实例路径 我正在使用递归目录迭代器。我还想省略其中包含“.”的任何路径实例,这正是我遇到问题的地方 以下是我的测试:Php 递归目录迭代器结果:从结果路径中筛选出特定字符,php,arrays,recursion,directory,Php,Arrays,Recursion,Directory,我试图递归地返回指定目录中的所有唯一实例路径 我正在使用递归目录迭代器。我还想省略其中包含“.”的任何路径实例,这正是我遇到问题的地方 以下是我的测试: <?php function test($dir){ $dirArray = []; // the array to store dirs $path = realpath($dir); $dirs = new RecursiveDirectoryIterator($path, FilesystemItera
<?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');
?>
这段代码几乎满足了我的需要。它返回所有唯一的目录,但包括路径名中带有“.”的目录。只需在其中添加另一个检查器,并尝试使用
->getPathname()
:
if($object->isDir() && strpos($object->getPathname(), '.') === false) {
// do some stuff
}
这基本上意味着,如果这是一个目录,并且如果路径名不包含该
,您是否有一个存在该问题的示例目录名?可能像path/to/directory.io/yeah
。所以这一个不应该包括在内?这都是git的东西,所以,/blah/.git/blah/blah
@jml不,它永远不会与真的相比。它不是0-n
就是false
。位置0-到任何数字(如果存在)<代码>错误
如果未找到