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下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
php实现的mongodb操作类
May 28 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
php中用unset销毁变量并释放内存
May 10 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
儿童python练习实例
2018/05/27 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
Python面向对象实现方法总结
2020/08/12 Python
Python如何执行系统命令
2020/09/23 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
个人近期表现材料
2014/02/11 职场文书
小小的船教学反思
2014/02/21 职场文书
企业挂职心得体会
2014/09/10 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript