php

php的dirname(__FILE__)和dirname(dirname(__FILE__))使用总结

2023-03-23

php的dirname(__FILE__)和dirname(dirname(__FILE__))使用总结

dirname(dirname(_FILE_));

假设__FILE__为 /home/web/config/config.php

上面的方法输出为 /home/web


dirname(dirname(\__FILE__));    //得到的是文件上一层目录名

dirname(\__FILE__);                  //得到的是文件所在层目录名


dirname(_FILE_)

php中定义了一个很有用的常数,即:_file_

这个内定常数是所在php程序文件的完整路径(路径+文件名)。

即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件完整路径。


请看下面例子:

F:\Modoer_2.6_SC_UTF8\upload\test\a.php


<?php

$the_full_name=__FILE__;

$the_dir=dirname(__FILE__);

echo $the_full_name;   //返回:F:\Modoer_2.6_SC_UTF8\upload\test\a.php

echo $the_dir;              //返回:F:\Modoer_2.6_SC_UTF8\upload\test

?>


**F:\Modoer_2.6_SC_UTF8\upload\b.php

**

<?php

include "test/a.php";   //返回:F:\Modoer_2.6_SC_UTF8\upload\test\a.phpF:\Modoer_2.6_SC_UTF8\upload\test

echo $the_full_name; //返回:F:\Modoer_2.6_SC_UTF8\upload\test\a.php

echo $the_dir; //返回:F:\Modoer_2.6_SC_UTF8\upload\test

?> 

简单地说:

_FILE_ 返回其所在文件的路径+文件名

dirname(_FILE_) 返回_FILE__所在文件的路径部分

dirname(dirname(_FILE));得到的是__FILE__所在文件的上一层目录名(不含最后一个“\”号)


例如,当前文件是 F:\Modoer_2.6_SC_UTF8\upload\test\a.php,则

_FILE_ 得到的就是完整路径 即 F:\Modoer_2.6_SC_UTF8\upload\test\a.php ,

dirname(_FILE_) 是得到路径部分 即 F:\Modoer_2.6_SC_UTF8\upload\test

dirname(dirname(_FILE_)),即:F:\Modoer_2.6_SC_UTF8\upload