php dirname()函数获取给定文件路径中的目录部分,而$_SERVER['SCRIPT_FILENAME']全局预定义变量用于获取当前执行脚本的完整路径,因此我们如果要获取当前执行脚本的目录可以使用dirname()函数和$_SERVER['SCRIPT_FILENAME']获取,具体代码如下:
<?php
$dir = dirname($_SERVER['SCRIPT_FILENAME']);
print $dir;
?>
与$_SERVER['SCRIPT_FILENAME']相同,魔术变量 __FILE__也可以获取PHP文件的完整路径(绝对路径),但是二者是有区别的,如果用在被包含文件中,__FILE__则返回被包含文件的完整路径和文件名
请看如下实例:
<?php
echo 'SCRIPT_FILENAME 为:',$_SERVER['SCRIPT_FILENAME'];
echo '<br />';
/* http://www.manongjc.com/article/1321.html */
echo '__FILE__ 为:',__FILE__;
?>
上述测试代码拷贝至 test.php 并访问该文件(http://127.0.0.1/php/test.php),得到如下结果:
SCRIPT_FILENAME 为:E:/web/html/php/test.php
__FILE__ 为:E:\web\html\php\test.php
提示:在 windows 平台测试,得到结果如上所示可能会出现路径分隔符的细微差别。
将上述测试代码拷贝至 E:\web\html\php\common\inc.php ,然后在刚才的 test.php 文件内包含 inc.php :
<?php
include 'common/inc.php';
?>
这时候再访问 test.php 文件时,输出结果:
SCRIPT_FILENAME 为:E:/web/html/php/test.php
__FILE__ 为:E:\web\html\php\common\inc.php