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递归实现无限分类生成下拉列表的函数
Aug 08 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
基于PHP开发中的安全防范知识详解
Jun 06 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
php微信公众号开发模式详解
Nov 28 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
PHP的mysqli_set_charset()函数讲解
Jan 23 PHP
php写入文件不覆盖的实例讲解
Sep 17 PHP
PHP代码加密的方法总结
Mar 13 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
3
2006/10/09 PHP
php 邮件发送问题解决
2014/03/22 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
js模拟类继承小例子
2010/07/17 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
numpy 声明空数组详解
2019/12/05 Python
python实现人像动漫化的示例代码
2020/05/17 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
电子商务专业个人的自我评价
2013/11/19 职场文书
期中考试反思800字
2014/05/01 职场文书
军训口号
2014/06/13 职场文书
批评与自我批评范文
2014/10/15 职场文书
交通事故和解协议书
2015/01/27 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书