解析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的FTP学习(三)
Oct 09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
微信支付开发交易通知实例
2016/07/12 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
javascript eval函数深入认识
2009/02/21 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
python实现类的静态变量用法实例
2015/05/08 Python
Python的Django框架中settings文件的部署建议
2015/05/30 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
2014信息公开实施方案
2014/02/22 职场文书
母婴店促销方案
2014/03/05 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
食品安全承诺书范文
2014/08/29 职场文书
迎国庆演讲稿
2014/09/05 职场文书
导游词开场白
2015/01/31 职场文书
联欢会开场白
2015/06/01 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python