PHP 的 __FILE__ 常量


Posted in PHP onJanuary 15, 2007

今天碰到了PHP的常量__FILE__的问题了。
在网上查了一下。总结了以下规律。
dirname(__FILE___) 函数返回的是脚本所在在的路径。
比如文件 b.php 包含如下内容:
<?php
$basedir = dirname(__FILE__);
?>
如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。
变量$basedir 的内容还是b.php所在的那个文件夹的路径。
而不是变成a.php文件所在的目录。
dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。
不会返回当前的文件名称。
dirname(__FILE__) 也可能返回一个 . (当前目录)
[原因是 b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下.
比如 WEB_ROOT 为: "C:/root/www/".]
b.php文件路径为: "C:/root/www/b.php".

使用方法提示, 
如果重复一次可以把目录往上提升一个层次:
比如:$d = dirname(dirname(__FILE__));
其实就是把一个目录给dirname()做参数了.因为dirname()返回最后的目录不带\\或者是/
所以重复使用的时候可以认为 dirname() 把最下层的目录当成文件名来处理了.照常返回
当前目录的上级目录.这样重复就得到了它的上一级的目录.

包含得到上一级目录的文件
include(dirname(__FILE__).'/../filename.php');

PHP 相关文章推荐
php在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
简单谈谈 php 文件锁
Feb 19 PHP
php格式文件打开的四种方法
Feb 24 PHP
php对微信支付回调处理的方法
Aug 23 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
MySQL相关说明
Jan 15 #PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 #PHP
关于mysql 字段的那个点为是定界符
Jan 15 #PHP
最令PHP初学者们头痛的十四个问题
Jan 15 #PHP
NOT NULL 和NULL
Jan 15 #PHP
MySQL中create table语句的基本语法是
Jan 15 #PHP
php生成文件
Jan 15 #PHP
You might like
PHP生成压缩文件实例
2015/02/07 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
python字典的常用操作方法小结
2016/05/16 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
Django如何实现防止XSS攻击
2020/10/13 Python
C#笔试题和英文面试题
2013/02/07 面试题
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
怎样自定义一个异常类
2016/09/27 面试题
装潢设计实习自我鉴定
2013/09/19 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
合伙经营协议书范本
2014/09/13 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android