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 mssql 数据库分页SQL语句
Dec 16 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php定时执行任务设置详解
Feb 06 PHP
php使用递归函数实现数字累加的方法
Mar 16 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 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环境――Appserv
2006/12/13 PHP
PHP用GD库生成高质量的缩略图片
2011/03/09 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
jquery简单实现外部链接用新窗口打开的方法
2015/05/30 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
轻松实现python搭建微信公众平台
2016/02/16 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
高三地理教学反思
2014/01/11 职场文书
投标承诺书范本
2014/03/27 职场文书
家长会学生演讲稿
2014/04/26 职场文书
房地产广告策划方案
2014/05/15 职场文书
未婚证明范本
2015/06/15 职场文书
暑期工社会实践报告
2015/07/13 职场文书
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫