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中使用PDF文档功能
Oct 09 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
Nov 19 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
PHP实现微信对账单处理
Oct 01 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 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 静态变量与自定义常量的使用方法
2010/01/26 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
python连接oracle数据库实例
2014/10/17 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
Django 大文件下载实现过程解析
2019/08/01 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
为什么相对PHP黑python的更少
2020/06/21 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
《孔子游春》教学反思
2014/02/25 职场文书
人力资源作业细则
2014/03/03 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
财务会计专业自荐书
2014/06/30 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
大学生入党自荐书
2015/03/05 职场文书
写给老师的保证书
2015/05/09 职场文书
爱的教育观后感
2015/06/17 职场文书