解析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抓取https的内容的代码
Apr 06 PHP
PHP 面向对象 final类与final方法
May 05 PHP
PHP排序算法的复习和总结
Feb 15 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
如何让CI框架支持service层
Oct 29 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
Feb 16 PHP
smarty中常用方法实例总结
Aug 07 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
Mar 06 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 PHP
PHP开发实现快递查询功能详解
Apr 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
一个显示天气预报的程序
2006/10/09 PHP
在线短消息收发的程序,不用数据库
2006/10/09 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
jquery实现数字输入框
2017/02/22 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python查看列的唯一值方法
2018/07/17 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
python中字符串的编码与解码详析
2020/12/03 Python
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
大学生求职自荐信
2015/03/24 职场文书
居住证明范文
2015/06/17 职场文书
小学思想品德教学反思
2016/02/24 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript