dirname()X文件PHP路径上的X次

时间:2012-03-17 00:28:47

标签: php directory

我需要多次在文件路径上执行dirname()以排除子文件夹,所以像这样:

dirname(dirname(dirname(__FILE__)));

我需要在文件路径上执行此操作的次数是完全动态的(不是固定的)所以我需要以某种方式变量$x次... {/ p>

我可以这样做:

$x=6;//amount of sub-folders involved in the path

if($x==1){dirname(__FILE__);}

elseif($x==2){dirname(dirname(__FILE__));}

elseif($x==3){dirname(dirname(dirname(__FILE__)));}

elseif($x==4){dirname(dirname(dirname(dirname(__FILE__))));}//and so on.....

但这不是一种专业的方式,它永远不可靠(如果$x = 9999999 ......)。

有谁知道我该怎么做?

2 个答案:

答案 0 :(得分:1)

递归是我朋友的答案!

function go_up_x_times($path, $x) {
    if ($x <= 0) {
        return $path;   // we're done, yay!
    }
    return dirname(go_up_x_times($path, $x - 1));
}
go_up_x_times(__FILE__, 5);

答案 1 :(得分:1)

您需要调用dirname函数$x次,称为循环:

$x=6; //amount of sub-folders involved in the path
$dir = dirname(__FILE__);
while(max(0, --$x)) {
    $dir = dirname($dir);
}