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实现与ASP Banner组件相似的类
Oct 09 PHP
php程序之die调试法 快速解决错误
Sep 17 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php日期操作技巧小结
Jun 25 PHP
PHP的Json中文处理解决方案
Sep 29 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
php格式化时间戳
Dec 17 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 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中防止恶意刷新页面的代码小结
2012/10/31 PHP
php教程之phpize使用方法
2014/02/12 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
JQuery触发事件例如click
2013/09/11 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
jquery 全选、全不选、反选效果的实现代码【推荐】
2016/05/05 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
WebPack基础知识详解
2017/01/16 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
django实现支付宝支付实例讲解
2019/10/17 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
python def 定义函数,调用函数方式
2020/06/02 Python
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
文明餐桌行动实施方案
2014/02/19 职场文书