解析php dirname()与__FILE__常量的应用


Posted in PHP onJune 24, 2013

__FILE__表示当前所在文件的绝对路径包括文件名,dirname(__FILE__)表示当前文件的绝对路径,basename(__FILE__)表示当前文件的文件名称,dirname(__FILE__)."/f/".basename(__FILE__)则表示当前文件所在目录下的f目录下的,文件名称为dirname(__FILE__)的文件,require表示包含该文件到这个文件。
下面是详解:
1)dirname(__FILE___) 函数返回的是脚本所在在的路径。
     比如文件 b.php 包含如下内容:
     <?php
    $basedir = dirname(__FILE__);
    ?>
    如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。
    变量$basedir 的内容还是b.php所在的那个文件夹的路径。
    而不是变成a.php文件所在的目录。

2)dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。
    不会返回当前的文件名称。
    dirname(__FILE__) 也可能返回一个 . (当前目录)
    [原因是 b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下.
    比如 WEB_ROOT 为: "C:/root/www/".]
    b.php文件路径为: "C:/root/www/b.php".

3)使用方法提示,
    如果重复一次可以把目录往上提升一个层次:
    比如:$d = dirname(dirname(__FILE__));
    其实就是把一个目录给dirname()做参数了.因为dirname()返回最后的目录不带\\或者是/
    所以重复使用的时候可以认为 dirname() 把最下层的目录当成文件名来处理了.照常返回
   当前目录的上级目录.这样重复就得到了它的上一级的目录.

4)包含得到上一级目录的文件
    include(dirname(__FILE__).''/../filename

PHP 相关文章推荐
开发大型PHP项目的方法
Oct 09 PHP
PHP常用代码
Nov 23 PHP
PHP开发过程中常用函数收藏
Dec 14 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
PHP 设计模式之观察者模式介绍
Feb 22 PHP
PHP实现下载功能的代码
Sep 29 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
详解php中 === 的使用
Oct 24 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
php 可变函数使用小结
Jun 12 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 #PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 #PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 #PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 #PHP
phpmailer发送gmail邮件实例详解
Jun 24 #PHP
深入php中var_dump方法的使用详解
Jun 24 #PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
Jun 24 #PHP
You might like
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python WSGI的深入理解
2018/08/01 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
博士学位自我鉴定范文
2013/12/26 职场文书
安全责任书模板
2014/07/22 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书