方法一:先获得当前文件所在文件夹的长度,然后用substr来截取掉该长度:
复制代码 代码如下:
$dirName = str_replace("\\", "/", dirname(__FILE__));
$dirNameLength = strlen($dirName);
$currentDirNameLength = $dirNameLength - strrpos($dirName,"/"); //获得当前文件所在文件夹的长度!
$parentDirName = substr($dirName,0,-$currentDirNameLength); //第3个参数如果为负数,那么表示从后面截取掉【该参数的绝对值】个字符。
$dirNameLength = strlen($dirName);
$currentDirNameLength = $dirNameLength - strrpos($dirName,"/"); //获得当前文件所在文件夹的长度!
$parentDirName = substr($dirName,0,-$currentDirNameLength); //第3个参数如果为负数,那么表示从后面截取掉【该参数的绝对值】个字符。
方法二:将当前文件所在文件夹当作一个文件(文件夹其实是特殊的文件,一切皆为文件!!),直接用dirname嵌套一次dirname即可:
1
|
$parentDirName = dirname(dirname( __FILE__ )); |
从上可以看出:对事物的深刻认识,能大幅度提高代码质量!
附上:PHP获取路径或目录实现
PHP获取目录和的方法通过魔术变量;通过超级全局变量;通过相关函数等等:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<?php /** * PHP获取路径或目录实现 */ //魔术变量,获取当前文件的绝对路径 echo "__FILE__: ========> " . __FILE__ ; echo '<br/>' ; //魔术变量,获取当前脚本的目录 echo "__DIR__: ========> " .__DIR__; echo '<br/>' ; //dirname返回路径的目录部分,dirname(__FILE__)相当于__DIR__ echo "dirname(__FILE__): ========> " .dirname( __FILE__ ); echo '<br/>' ; //$_SERVER['PHP_SELF']和$_SERVER['SCRIPT_NAME']的结果一般相同,他们都是获取当前脚本的文件名 //只有当php以cgi方式运行时有区别,但是现在几乎找不到以cgi方式运行php了 echo '$_SERVER["PHP_SELF"]: ========> ' . $_SERVER [ 'PHP_SELF' ]; echo '<br/>' ; echo '$_SERVER["SCRIPT_NAME"]: ========> ' . $_SERVER [ 'SCRIPT_NAME' ]; echo '<br/>' ; //当前执行脚本的绝对路径。记住,在CLI方式运行php是获取不到的 echo '$_SERVER["SCRIPT_FILENAME"]: ========> ' . $_SERVER [ 'SCRIPT_FILENAME' ]; echo '<br/>' ; //当前运行脚本所在的文档根目录。在服务器配置文件中定义。 echo '$_SERVER["DOCUMENT_ROOT"]: ========> ' . $_SERVER [ 'DOCUMENT_ROOT' ]; echo '<br>' ; //getcwd()返回当前工作目录 echo "getcwd(): ========> " . getcwd (); echo '<br>' ; |