php -- 取路径:getcwd()、__DIR__、__FILE__ 的区别
来源:https://www.cnblogs.com/hf8051/p/4613103.html
getcwd() :显示是 在哪个文件里调用此文件 的目录
__DIR__ :当前内容写在哪个文件就显示这个文件目录
__FILE__ : 当前内容写在哪个文件就显示这个文件目录+文件名
由此可见
getcwd()和 __DIR__ 返回的是文件所在的绝对路径但是没有文件自身的名字在内。
__FILE__则是返回的是文件所在的绝对路径但是有文件自身的名字在内
以下是百度来的参考资料
在ch06中建立文件 test.php。目录为:ch06\test.php
内容如下:
1 <?php 2 $a= getcwd(); 3 //变量a的值为D:\php\zend6.1\ch6 4 5 $b=__FILE__; 6 //变量b的值为D:\php\zend6.1\ch6\test.php 7 8 ?>
下面在ch06项目下建立文件夹admincp文件夹。在admincp文件夹下建立文件fff.php。目录为:ch06\admincp\fff.php
代码如下
1 <?php 2 include_once '../test.php'; 3 echo $a;//变量a中的值是D:\php\zend6.1\ch6\admincp 4 echo '<pre>'; 5 echo $b;//变量b中的值是D:\php\zend6.1\ch6\test.php 6 ?>
由此可见,在另一个文件中包含test.php文件。在test.php文件中用getcwd()获取的test.php的路径变量a在包含之后发生变化。目录结构加上了ffff.php的所在目录admincp,所以·在用文件定位时__FILE__较好
举例
1 <?php 2 3 define('PATH_ROOT',($PATH_ROOT=dirname(__FILE__))?$PATH_ROOT:'..'); 4 $PATH_admincp=PATH_ROOT.'\admincp'; 5 $PATH_picture=PATH_ROOT.'\pciture'; 6 $PATH_admincp_include=$PATH_admincp.'\include'; 7 8 ?> 9 10 <?php 11 include_once dirname(__FILE__).'/../../path.php'; 12 include_once PATH_ROOT."/con_ini.php"; 13 14 ?>