dirname () X количество раз на пути к файлу PHP - PullRequest
1 голос
/ 17 марта 2012

Мне нужно сделать dirname() в пути к файлу несколько раз, чтобы исключить подпапки, вот так:

dirname(dirname(dirname(__FILE__)));

Сколько раз мне нужно сделать это для пути к файлу:полностью динамический (не фиксированный), поэтому мне нужно как-то сделать это переменная $x количество раз ...

Я мог бы сделать это:

$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 ]

1 голос
/ 17 марта 2012

Вам нужно вызвать dirname функцию $x раз, это называется циклом:

$x=6; //amount of sub-folders involved in the path
$dir = dirname(__FILE__);
while(max(0, --$x)) {
    $dir = dirname($dir);
}
1 голос
/ 17 марта 2012

Рекурсия - это ответ, мой друг!

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...