解析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&amp;&amp;mysql)三
Oct 09 PHP
PHP4实际应用经验篇(7)
Oct 09 PHP
joomla内置的表单验证功能使用方法
Jun 11 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
PHP整合PayPal支付
Jun 11 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 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/05/06 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
[01:18:21]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
Python发送Email方法实例
2014/08/21 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
酒店保安员岗位职责
2014/01/31 职场文书
护士岗位职责
2014/02/16 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
教师对学生的评语
2014/04/28 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
Python turtle编写简单的球类小游戏
2022/03/31 Python