所有这些资源都可以递归循环遍历子目录,但是我没有找到一个显示如何做相反的事情。
这就是我想要做的......
<?php
// get the current working directory
// start a loop
// check if a certain file exists in the current directory
// if not, set current directory as parent directory
// end loop
所以,换句话说,我正在当前目录中搜索一个非常特定的文件,如果它不存在,请检查它的父级,然后是它的父级等。
我尝试的一切对我来说都很难看。希望有人有一个优雅的解决方案。
谢谢!
答案 0 :(得分:1)
尝试创建像这样的递归函数
function getSomeFile($path) {
if(file_exists($path) {
return file_get_contents($path);
}
else {
return getSomeFile("../" . $path);
}
}
答案 1 :(得分:1)
最简单的方法是使用../这将移动到上面的文件夹。然后,您可以获取该目录的文件/文件夹列表。不要忘记,如果您检查上面目录中的孩子,那么您正在检查您的兄弟姐妹。如果你只是想直接上树,那么你可以简单地继续踩到一个目录,直到你找到root或者你被允许去。
答案 2 :(得分:1)
<?php
$dir = '.';
while ($dir != '/'){
if (file_exists($dir.'/'. $filename)) {
echo 'found it!';
break;
} else {
echo 'Changing directory' . "\n";
$dir = chdir('..');
}
}
?>
答案 3 :(得分:0)
修改了mavili的代码:
function findParentDirWithFile( $file = false ) {
if ( empty($file) ) { return false; }
$dir = '.';
while ($dir != '/') {
if (file_exists($dir.'/'. $file)) {
echo 'found it!';
return $dir . '/' . $file;
break;
} else {
echo 'Changing directory' . "\n";
chdir('..');
$dir = getcwd();
}
}
}