解析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执行速率优化技巧小结
Mar 15 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
PHP使用数组实现队列
Feb 05 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP的全局错误处理详解
Apr 25 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
jquery 获取索引值在一定范围的列表方法
2018/01/25 jQuery
Angular脚手架开发的实现步骤
2019/04/09 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python 的类、继承和多态详解
2017/07/16 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
详解python中list的使用
2019/03/15 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
八一建军节活动方案
2014/02/10 职场文书
应聘英语教师求职信
2014/04/24 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
庆七一宣传标语
2014/10/08 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
七年级数学教学反思
2016/02/17 职场文书
七个Python必备的GUI库
2021/04/27 Python
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android