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 采集获取指定网址的内容
Jan 05 PHP
php 无限级数据JSON格式及JS解析
Jul 17 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
php获取当前页面完整URL地址
Dec 30 PHP
php语言的7种基本的排序方法
Dec 28 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 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与SQL注入攻击[一]
2007/04/17 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
小谈php正则提取图片地址
2014/03/27 PHP
php中使用sftp教程
2015/03/30 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
js 省地市级联选择
2010/02/07 Javascript
javascript 异步页面查询实现代码(asp.net)
2010/05/26 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Python ljust rjust center输出
2008/09/06 Python
Python中多线程thread与threading的实现方法
2014/08/18 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
纽约手袋品牌:KARA
2018/03/18 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
火灾现场处置方案
2014/05/28 职场文书
综治维稳工作汇报
2014/10/27 职场文书
聘任证明怎么写
2015/03/02 职场文书
妇产科护理心得体会
2016/01/22 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS