PHP 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
?1 2 3 4 5 6 | <?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
**
1 2 3 4 5 6 | <?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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/shangxia/p/4650977.html#undefined
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。