解析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语法(4)
Oct 09 PHP
PHP 的 __FILE__ 常量
Jan 15 PHP
php遍历目录viewDir函数
Dec 15 PHP
php下过滤html代码的函数 提高程序安全性
Mar 02 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
php实现通用的信用卡验证类
Mar 24 PHP
php中关于socket的系列函数总结
May 18 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 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
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
常用的10个Python实用小技巧
2020/08/10 Python
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
汽车工程专业应届生求职信
2013/10/19 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
美术教师岗位职责
2014/03/18 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
新年祝酒词大全
2015/08/11 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android