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代码把全角数字转为半角数字
Dec 10 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
深入理解PHP变量的值类型和引用类型
Oct 21 PHP
php session 写入数据库
Feb 13 PHP
PHP二维数组排序简单实现方法
Feb 14 PHP
laravel 使用auth编写登录的方法
Sep 30 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 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中取得image按钮传递的name值
2006/10/09 PHP
重新认识php array_merge函数
2014/08/31 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
vue 实现购物车总价计算
2019/11/06 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python编程argparse入门浅析
2018/02/07 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
2019/11/08 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
英文留学推荐信范文
2014/01/25 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
项目申请汇报材料
2014/08/16 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
Python中glob库实现文件名的匹配
2021/06/18 Python
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js
MySQL查询日期时间
2022/05/15 MySQL