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面向对象全攻略 (八)重载新的方法
Sep 30 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
Yii2 assets清除缓存的方法
May 16 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
php实现留言板功能
Mar 05 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
简单实现PHP留言板功能
2016/12/21 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
Python3数字求和的实例
2019/02/19 Python
python with语句的原理与用法详解
2020/03/30 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
骨干教师培训感言
2014/01/16 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书