PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别

通常情况下,PHP $_SERVER[‘SCRIPT_FILENAME‘] 与 __FILE__ 都会返回 PHP 文件的完整路径(绝对路径)与文件名:

<?php
echo ‘SCRIPT_FILENAME 为:‘,$_SERVER[‘SCRIPT_FILENAME‘];
echo ‘<br />‘;
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 平台测试,得到结果如上所示可能会出现路径分隔符的细微差别。

$_SERVER[‘SCRIPT_FILENAME‘] 与 __FILE__ 区别

尽管 $_SERVER[‘SCRIPT_FILENAME‘] 与 __FILE__ 非常相似,但在文件被 include 或 require 包含的时候,二者还是有细微区别。

将上述测试代码拷贝至 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\test.php

可见二者的差别是:$_SERVER[‘SCRIPT_FILENAME‘] 反映的是当前执行程序的绝对路径及文件名;__FILE__ 反映的是原始文件(被包含文件)的绝对路径及文件名。

可以这样理解,$_SERVER[‘SCRIPT_FILENAME‘] 为不管在哪个文件中写的,只输出执行文件的绝对路径及文件名

__FILE__写在哪个文件,输出哪个文件的绝对路径和文件名。

转载:https://blog.csdn.net/cxfdg/article/details/53402477

PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别

原文地址:https://www.cnblogs.com/bigclould/p/9318475.html

时间: 2024-10-16 11:42:18

PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别的相关文章

获取PHP文件绝对地址$_SERVER[&#39;SCRIPT_FILENAME&#39;] 与 __FILE__ 的区别

通常情况下,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 都会返回 PHP 文件的完整路径(绝对路径)与文件名: <?php echo 'SCRIPT_FILENAME 为:',$_SERVER['SCRIPT_FILENAME']; echo '<br />'; echo '__FILE__ 为:',__FILE__; ?> 上述测试代码拷贝至 test.php 并访问该文件(http://127.0.0.1/php/test.php),得

$_SERVER[&#39;SCRIPT_FILENAME&#39;] 与 __FILE__ 区别

PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别 PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 通常情况下,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 都会返回 PHP 文件的完整路径(绝对路径)与文件名: <?php echo 'SCRIPT_FILENAME 为:',$_SERVER['SCRIPT_FILENAME']; echo '<br />'; ech

php$_SERVER[&#39;SCRIPT_NAME&#39;]和__FILE__的区别

$_SERVER['SCRIPT_FILENAME']          -------> 当前执行程序的绝对路径及文件名__FILE__                                                 -------> 原始文件(被包含文件)的绝对路径及文件名 eg:假设web根目录是 e:/myweb先建立 e:/myweb/index.php内容是:<?php require 'other/index2.php'; ?>再建立 e:/myweb

__FILE__ $_SERVER[&#39;PHP_SELF&#39;] $_SERVER[&#39;SCRIPT_NAME&#39;] $_SERVER[&#39;SCRIPT_FILENAME&#39;] 的区别

echo "<strong>"; echo "__FILE__:".__FILE__;echo "<br/>"; echo "PHP-SELF:".$_SERVER['PHP_SELF'];echo "<br/>"; echo "name:".$_SERVER['SCRIPT_NAME'];echo "<br/>"; e

详解__FILE__与$_SERVER[&#39;SCRIPT_FILENAME&#39;]的区别

废话不多说 直接上测试代码: 1 <?php 2 //引入的是ceshi4文件夹下的ceshi4.php; 3 require_once './ceshi4/ceshi4.php'; 下面是ceshi4文件夹下的ceshi4.php: echo 'SCRIPT_FILENAME为:'. $_SERVER['SCRIPT_FILENAME']; echo '<br/>';echo '__FILE__为:'. __FILE__;//都是根目录开始echo '<br/>';echo

获取文件绝对路径:__FILE__与 $_SERVER[SCRIPT_FILENAME&#39;&#39;] 的 区别

__FILE__ :  获取某文件在本地目录中的绝对路径,(也就是说,哪个文件执行这行代码,它就获取哪个文件的绝对路径) $__SERVER['SCRIPT_FILENAME']  :  获取当前url路由的绝对路径(也就是说,我们在Url中,访问的是哪个文件,它就获取这个文件的绝对路径) 获取文件绝对路径:__FILE__与 $_SERVER[SCRIPT_FILENAME''] 的 区别 原文地址:https://www.cnblogs.com/wangshuazi/p/11117627.h

$_SERVER[&#39;SCRIPT_FLENAME&#39;]与__FILE__

$_SERVER['SCRIPT_FILENAME'] 反映的是当前执行程序的绝对路径及文件名:__FILE__ 反映的是原始文件(被包含文件)的绝对路径及文件名. $_SERVER['SCRIPT_FLENAME']与__FILE__

getcwd()和dirname(__FILE__)的区别

我个人理解:getcwd()会随着包含文件的改变而改变,而dirname(__FILE__)不会.即 getcwd() 表示获取当前执行文件的物理路径. 如 getcwd()显示: /www/project/test/a.php echo getcwd(); //echo /www/project/test   /www/project/b.php include_once(test/a.php); //echo /www/project 而dirname(__FILE__): /www/pro

php -- 取路径:getcwd()、__DIR__、__FILE__ 的区别

getcwd() :显示是 在哪个文件里调用此文件 的目录 __DIR__ :当前内容写在哪个文件就显示这个文件目录 __FILE__ : 当前内容写在哪个文件就显示这个文件目录+文件名 由此可见 getcwd()和 __DIR__ 返回的是文件所在的绝对路径但是没有文件自身的名字在内. __FILE__则是返回的是文件所在的绝对路径但是有文件自身的名字在内 以下是百度来的参考资料在ch06中建立文件 test.php.目录为:ch06\test.php 内容如下: <?php $a= getc