解析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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
PHP实现分页的一个示例
Oct 09 PHP
BBS(php &amp; mysql)完整版(四)
Oct 09 PHP
php网上商城购物车设计代码分享
Feb 15 PHP
PHP中将字符串转化为整数(int) intval() printf() 性能测试
Mar 20 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
php生成QRcode实例
Sep 22 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP导入导出Excel代码
Jul 07 PHP
PHP工厂模式简单实现方法示例
May 23 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 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
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
JavaScript 指导方针
2007/04/05 Javascript
网上应用的一个不错common.js脚本
2007/08/08 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python切片工具pillow用法示例
2018/03/30 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python语言基本语句用法总结
2019/06/11 Python
python实现猜数字游戏
2020/03/25 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
捷克时尚网上商店:OTTO
2018/03/15 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
小学新教师培训方案
2014/02/03 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
小学校本教研总结
2015/08/13 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android