解析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报表之jpgraph柱状图实例代码
Aug 22 PHP
php若干单维数组遍历方法的比较
Sep 20 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
Dec 29 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
php引用传值实例详解学习
Nov 06 PHP
PHP三元运算的2种写法代码实例
May 12 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
PHP中使用循环实现的金字塔图形
Nov 08 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
PHP实现生成模糊图片的方法示例
Dec 21 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开发文件系统实例讲解
2006/10/09 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
克隆javascript对象的三个方法小结
2011/01/12 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
基于javascript显示当前时间以及倒计时功能
2016/03/18 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
深入理解Python 代码优化详解
2014/10/27 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
2019/10/14 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
2014婚礼司仪主持词
2014/03/14 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
运动会通讯稿100字
2015/07/20 职场文书