解析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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
两个开源的Php输出Excel文件类
Feb 08 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 PHP
PHP实现多图片上传类实例
Jul 26 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP回调函数简单用法示例
May 08 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绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
[05:34]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY第二弹
2014/06/25 DOTA
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
Python基本语法经典教程
2016/03/11 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
幼儿园义卖活动方案
2014/01/17 职场文书
环境建设实施方案
2014/03/14 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python