PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__

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

echo 'SCRIPT_FILENAME 为:',$_SERVER['SCRIPT_FILENAME'];

echo '
';

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 :

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__ 反映的是原始文件(被包含文件)的绝对路径及文件名。

script filename php,PHP $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 的区别相关推荐

  1. $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 区别

    尽管 $_SERVER['SCRIPT_FILENAME'] 与 __FILE__ 非常相似,但在文件被 include 或 require 包含的时候,二者还是有细微区别. 将上述测试代码拷贝至 E ...

  2. php __FILE__和$_SERVER['SCRIPT_FILENAME']区别

    假设有a.php和b.php2个文件,分别位于E:/wamp/www/Text/ a.php echo $_SERVER['SCRIPT_FILENAME'].'<br/>'; echo ...

  3. getcwd()和dirname(__FILE__)的区别

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

  4. python getcwd 与dirname_Python中获取路径os.getcwd()和os.path.dirname(os.path.realpath(__file__))的区别和对比...

    转自:http://blog.csdn.net/cyjs1988/article/details/77839238 下午博主更新了一篇讲述获取当前项目路径的博文,然后得到了悠悠校长的指点,又了解了一种 ...

  5. php面试题__语言基础

    1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也就是说它计算的是字符 ...

  6. PHP面试题及答案解析(1)—PHP语法基础

    1. strlen( )与 mb_strlen( )的作用分别是什么? strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数. ...

  7. tcltk控制chariot进行测试,并将批量数据输出成excel

    直接上源码,都加了备注,应该很容易看懂 桌面新建文件夹TCL 需要使用bat来驱动tcl文件 tclsh test4.tcl test4.tcl 建立4条pair 来进行流量测试,测试时间为1小时 s ...

  8. 2017PHP经典面试题

    一.理论知识 1.1.PHP里面是区分大小写的吗? PHP对于系统函数.用户自定义函数.类名称等是不区分大小写的 PHP中的变量和常量是区分大小写的 对于文件名又因服务器操作系统而定,linux中区分 ...

  9. php几个预定义变量$_SERVER['DOCUMENT_ROOT']

    <?php echo 'documentroot:'.$_SERVER['DOCUMENT_ROOT'].'<br>'; //根目录,在apache的配置文件里定义:httpd.co ...

最新文章

  1. [转载]如何发送和接收 Windows Phone 的 Toast 通知
  2. pycharm代码自动补全功能
  3. 【爬坑】在 IDEA 中运行 Hadoop 程序 报 winutils.exe 不存在错误解决方案
  4. 模块间接口设计的原则
  5. mysql ignore errors_mysql的又一个让人捉摸不透的bug?
  6. python猜数字游戏_C++编程基础: 9. 猜数字小游戏
  7. 【软件工程导论】期末复习试题集
  8. 网络安全界巨擘 王江民
  9. hosts文件是什么? Windows、Mac、Linux的hosts文件在哪里?
  10. 使用scipy来进行曲线拟合
  11. 期权定价_强化学习的期权定价
  12. DDOS攻击是什么意思?日本奥运官网遭逾4亿次网络攻击
  13. 线上发版如何做到分批发的?详解蓝绿部署,滚动升级,A/B 测试,灰度发布/金丝雀发布
  14. STM32中DMA、TCM(ITCM和DTCM)、CaChe的区别
  15. 飞信消息通道服务器,和飞信_服务中心_中国移动通信
  16. MySQL 数据库之 MMM 高可用架构构建
  17. c语言 %-10s,10s
  18. html中怎么制作太阳月亮交替,使用纯CSS实现太阳和地球和月亮运转模型动画的方法...
  19. 强大的录屏工具:Screen Recorder by Omi Mac
  20. 计算机领域最新技术视频,浅析计算机技术在视频编辑领域的应用

热门文章

  1. opencv java_opencv的Java开发环境配置(IntelliJ idea)
  2. input层级高 小程序_获客、引流成本越来越高?开发小程序:低成本获客、引流...
  3. 使用未初始化的内存是什么意思_他们都说JVM能实际使用的内存比-Xmx指定的少?这是为什么呢...
  4. matlab imread_MATLAB图像处理:29:在几何变换输出中指定填充值
  5. mysql 升级 openssl_【1分钟教程】LNMP架构应用实战 Openssl升级操作
  6. CTFHUB 《请求方式》 http请求,curl命令总结
  7. linux实现自己的write函数,Linux 内核源码阅读 - write 系统调用的实现
  8. python可以在多平台运行 体现了_Python:使用异常处理来判断运行的平台
  9. #中队列的数据结构_数据结构与算法拓展(一)
  10. aop注解配置切点 spring_springboot aop 自定义注解方式实现一套完善的日志记录