在php的编程中时常要获取各种目录,尤其在下载,引用相关php文件的时候。虽说include、require等方法引用文件,同样可以像html写目录那样利用../上级目录,aa/bb当前目录下aa文件夹下的bb,然而随着网站的不停地开发,所建的文件夹,站点的目录越来越多,不宜通过不停取上级目录的方式来找到一个文件或文件夹的位置,更实际的做法上取站点的根目录,之后再一级一级地取下来,这样,无论项目怎么迁移,php中的文件引用就不会凌乱。
这就涉及到php的取法,php常见的目录取法又以下的四种,都是php中一些常见的魔术变量与内置常量。
<?php
echo __FILE__;//取得当前文件的绝对地址
echo "<br>";
echo dirname(__FILE__);//取得当前文件所在的绝对目录
echo "<br>";
echo dirname(dirname(__FILE__));//再取得当前文件的上一层目录名
echo "<br>";
echo $_SERVER['DOCUMENT_ROOT'];//取服务器的根目录
?>
上述php代码在我的环境,运行结果如下:
两个常量__FILE__与$_SERVER['DOCUMENT_ROOT']没什么好说,主要是注意到php中有内置的dirname能够对一个表示路径字符串直接取走其上级目录。
这样的话,在require的时候,或者指定下载路径的时候,用$_SERVER['DOCUMENT_ROOT']."/xx/aa/xx.php"来指明一个路径,你的php项目在需要迁移的时候,需要修改的地方会减少很多,至少没有路径问题了。