解析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实现网上点歌(二)
Oct 09 PHP
PHP网站基础优化方法小结
Sep 29 PHP
php Sql Server连接失败问题及解决办法
Aug 07 PHP
php图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
php实现生成带二维码图片并强制下载功能
Feb 24 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
PHP中echo与print区别点整理
Mar 09 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
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
js格式化时间小结
2014/11/03 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
Python Queue模块详解
2014/11/30 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
ORACLE第二个十问
2013/12/14 面试题
如何查找网页漏洞
2016/06/22 面试题
主治医师岗位职责
2013/12/10 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
根叔历年演讲稿
2014/05/20 职场文书
办理房产过户的委托书
2014/09/14 职场文书
委托证明范本
2014/11/25 职场文书
员工表扬信怎么写
2015/05/05 职场文书
学习经验交流会总结
2015/11/02 职场文书
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android
springboot读取resources下文件的方式详解
2022/06/21 Java/Android