php dirname(__FILE__) 获取当前文件的绝对路径


Posted in PHP onJune 28, 2011

PHP 常量 dirname(__file__)

__FILE__ :被称为PHP魔术常量 ,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径

1)dirname(__FILE__) 函数返回的是脚本所在在的路径。

比如文件 b.php 包含如下内容:

<?php 
$basedir = dirname(__FILE__); 
echo $basedir
//将在页面打印出一个这个文件所在绝对路径! 
?>

我做的测试得到结果: E:/website/othertest/cms

这个相当于, asp中的server.mappth的用法

如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。 变量$basedir 的内容还是b.php所在的那个文件夹的路径。 而不是变成a.php文件所在的目录。

2)dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。

不会返回当前的文件名称。 dirname(__FILE__) 也可能返回一个 . (当前目录) [原因是 b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下

几个 PHP 的“魔术常量”

名称 说明
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__CLASS__ 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写比如当前文件是放在(d:\www\)下,文件名是test.php。
测试的代码如下:

<?php 
echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:\www\test.php 
echo dirname(__FILE__); // 取得当前文件所在的绝对目录,结果:D:\www\ 
echo dirname(dirname(__FILE__)); //取得当前文件的上一层目录名,结果:D:\ 
?>

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

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

__FILE__的路径是当前代码所在文件

dirname(dirname(__FILE__));得到的是文件上一层目录名

dirname(__FILE__);得到的是文件所在层目录名

PHP 相关文章推荐
图形数字验证代码
Oct 09 PHP
php 计划任务 检测用户连接状态
Mar 29 PHP
php中使用$_REQUEST需要注意的一个问题
May 02 PHP
windwos下使用php连接oracle数据库的过程分享
May 26 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
php控制文件下载速度的方法
Mar 24 PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
php注册和登录界面的实现案例(推荐)
Oct 24 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
基于PHP实现用户在线状态检测
Nov 10 PHP
php新建文件自动编号的思路与实现
Jun 27 #PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 #PHP
php开启安全模式后禁用的函数集合
Jun 26 #PHP
php设计模式 Adapter(适配器模式)
Jun 26 #PHP
php设计模式 Builder(建造者模式)
Jun 26 #PHP
php设计模式 DAO(数据访问对象模式)
Jun 26 #PHP
php设计模式 Decorator(装饰模式)
Jun 26 #PHP
You might like
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
python读写csv文件实例代码
2019/07/05 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
网上蛋糕店创业计划书
2014/01/24 职场文书
小学教师师德感言
2014/02/10 职场文书
文明市民先进事迹
2014/05/15 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
工作检讨书怎么写
2014/10/10 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python
JS中如何优雅的使用async await详解
2021/10/05 Javascript
关于 Python json中load和loads区别
2021/11/07 Python