php dirname配合__FILE__ 和SCRIPT_FILENAME获取文件目录

时间:2016-08-07
php中我们可以dirname函数和预定义变量SCRIPT_FILENAME获取当前执行脚本的目录,本文章向大家介绍dirname函数配合SCRIPT_FILENAME变量实现获取文件目录,需要的朋友可以参考一下。

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