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巧获服务器端信息
Dec 06 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
为PHP初学者的8点有效建议
Nov 20 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
destoon复制新模块的方法
Jun 21 PHP
dedecms集成财付通支付接口
Dec 28 PHP
试用php中oci8扩展
Jun 18 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 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生成静态页
2006/11/25 PHP
获取远程文件大小的php函数
2010/01/11 PHP
PHP中的array数组类型分析说明
2010/07/27 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php实现文件下载更能介绍
2012/11/23 PHP
php实现文件编码批量转换
2014/03/10 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[01:01:18]VP vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python 字符串换行的多种方式
2018/09/06 Python
详解django2中关于时间处理策略
2019/03/06 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python中列表的含义及用法
2020/05/26 Python
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
类的核心特性有哪些
2014/01/01 面试题
心理学培训心得体会
2016/01/22 职场文书