解析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 $_SERVER当前完整url的写法
Nov 12 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
php xml 入门学习资料
Jan 01 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
Aug 22 PHP
PHP中is_file()函数使用指南
May 08 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP实现伪静态方法汇总
Jan 13 PHP
php中namespace及use用法分析
Dec 06 PHP
Redis构建分布式锁
Mar 28 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
PHP文件上传小程序 适合初学者学习!
May 23 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截取中文字符串不乱码的方法
2013/12/25 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
PHP学习笔记之session
2018/05/06 PHP
php实现算术验证码功能
2018/12/05 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
Vue实现简易计算器
2020/02/25 Javascript
Vue实现手机计算器
2020/08/17 Javascript
vuex的使用步骤
2021/01/06 Vue.js
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
python list元素为tuple时的排序方法
2018/04/18 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
对python函数签名的方法详解
2019/01/22 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
如何使用PHP session
2015/04/21 面试题
房地产资料员岗位职责
2014/07/02 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
Spring整合Mybatis的全过程
2021/06/28 Java/Android
SQL SERVER存储过程用法详解
2022/02/24 SQL Server