将文件夹升级一级

Dev*_*555 34 php

我用这个:

echo dirname(__FILE__);
Run Code Online (Sandbox Code Playgroud)

这使:

C:\UwAmp\www\myfolder\admin
Run Code Online (Sandbox Code Playgroud)

但是我正在寻找路径,直到:

C:\UwAmp\www\myfolder\
Run Code Online (Sandbox Code Playgroud)

从当前的脚本.怎么办?

Dav*_*dom 78

你可以这样做:

dirname(__DIR__);
Run Code Online (Sandbox Code Playgroud)

要么:

__DIR__ . '/..';
Run Code Online (Sandbox Code Playgroud)

...但是在Web服务器环境中,您可能会发现您已经在当前文件的工作目录中工作,因此您可以使用:

'../'
Run Code Online (Sandbox Code Playgroud)

...引用上面的目录.您可以替换__DIR__使用dirname(__FILE__)PHP 5.3.0之前.

你还应该知道什么__DIR__并且__FILE__指的是:

文件的完整路径和文件名.如果在include中使用,则返回包含文件的名称.

所以它可能并不总是指向你想要它的位置.


Dan*_*oap 18

你可以试试

echo realpath(__DIR__ . DIRECTORY_SEPARATOR . '..'); 
Run Code Online (Sandbox Code Playgroud)


Ond*_*lda 8

echo dirname(__DIR__);
Run Code Online (Sandbox Code Playgroud)

但请注意,__DIR__常量是在PHP 5.3.0中添加的.


gsl*_*gsl 5

包含文件的父目录是

dirname(getcwd())
Run Code Online (Sandbox Code Playgroud)

例如,文件是 /var/www/html/folder/inc/file.inc.php ,它包含在 /var/www/html/folder/index.php中

然后通过调用/file/index.php

getcwd() is /var/www/html/folder  
__DIR__ is /var/www/html/folder/inc  
so dirname(__DIR__) is /var/www/html/folder
Run Code Online (Sandbox Code Playgroud)

但我们想要的是/var/www/html,即dirname(getcwd())


小智 5

您也可以 dirname(__DIR__, $level) 用于访问任何折叠级别而无需遍历