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 相关文章推荐
php中的MVC模式运用技巧
May 03 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
Jul 04 PHP
色色整理的PHP面试题集锦
Mar 08 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
php正则表达匹配中文问题分析小结
Mar 25 PHP
深入PHP nl2br()格式化输出的详解
Jun 05 PHP
php遍历删除整个目录及文件的方法
Mar 13 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
php实现图片上传、剪切功能
May 07 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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
PHP编码规范的深入探讨
2013/06/06 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python实现登录接口的示例代码
2017/07/21 Python
Python文件操作基本流程代码实例
2017/12/11 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
python实现图片素描效果
2020/09/26 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
迟到检讨书大全
2014/01/25 职场文书
展会邀请函范文
2014/01/26 职场文书
高三学习决心书
2014/03/11 职场文书
《泉水》教学反思
2014/04/11 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
求职信名称怎么写
2014/05/26 职场文书
工程安全生产协议书
2014/11/21 职场文书
MySQL事务的隔离级别详情
2022/07/15 MySQL