解析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 相关文章推荐
PHPMailer邮件类利用smtp.163.com发送邮件方法
Sep 11 PHP
php下载远程文件类(支持断点续传)
Nov 14 PHP
php cache类代码(php数据缓存类)
Apr 15 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php Calender(日历)代码分享
Jan 03 PHP
php好代码风格的阶段性总结
Jun 25 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
Jul 17 PHP
PHP抽象类与接口的区别详解
Mar 21 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
laravel框架如何设置公共头和公共尾
Oct 22 PHP
Laravel框架自定义分页样式操作示例
Jan 26 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命令行使用方法和命令行参数说明
2014/04/08 PHP
php给图片加文字水印
2015/07/31 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
Yii核心验证器api详解
2016/11/23 PHP
php实现文件预览功能
2017/05/23 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
基于jquery的一个OutlookBar类,动态创建导航条
2010/11/19 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python守护进程(daemon)代码实例
2015/03/06 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
营业员演讲稿
2013/12/30 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
大学教师个人总结
2015/02/10 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
微信小程序实现轮播图指示器
2022/06/25 Javascript