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学习之整理字符串
Apr 17 PHP
如何用PHP实现插入排序?
Apr 10 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
PHP中foreach()用法汇总
Jul 02 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 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
phpmyadmin的#1251问题
2006/11/25 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
2013/06/01 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
详解PHP归并排序的实现
2016/10/18 PHP
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
python使用PyFetion来发送短信的例子
2014/04/22 Python
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
python使用requests.session模拟登录
2019/08/09 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Python常用库大全及简要说明
2020/01/17 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
python re.match()用法相关示例
2021/01/27 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
工程造价管理专业大专生求职信
2013/10/06 职场文书
交通事故协议书
2014/04/15 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
七年级英语教学反思
2016/02/15 职场文书