学习discuz php 引入文件的方法DISCUZ_ROOT


Posted in PHP onJune 21, 2009

define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));
这是discuz中定义论坛安装根目录的一个常量。现在我们就来分析一下这个很简单但是非常实用的常量。
先说明一下本篇文章中假定common.inc.php文件的绝对路径就是F:\webroot\bbs\include\common.inc.php
这句话包含在discuz的 include/common.inc.php 里面,首先我们来看看DISCUZ_ROOT这个常量的值:F:\webroot\bbs\
接下来我们具体分析这句话:
define(),当然是定义一个常量了,这里呢就是定义一个名字是DISCUZ_ROOT的常量。
substr(),这个是字符串截取函数,substr(‘123456789', 0, -2)这句话就是返回1234567。
dirname(__FILE__) ,__FILE__是一个魔术常量,手册上是这么说的“文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。 ”。dirname(),返回路径中的目录部分。这么看来dirname(__FILE__),就是获取的F:\webroot\bbs\include着一串字符串。

由此可见define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7)); 就是F:\webroot\bbs\include这个字符串减去末尾7个字母的字符串:F:\webroot\bbs\
假如include文件夹改成lib那么-7就应该改成是-3,不知道你明白了没有?

以后在程序中引用文件的时候就可以这么写了require_once DISCUZ_ROOT . './test.php'; 这句话的实际内容就是require_once F:\webroot\bbs\./test.php

PHP 相关文章推荐
php和js交互一例-PHP教程,PHP应用
Jan 03 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
php 正则表达式小结
Aug 31 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
FireFox浏览器使用Javascript上传大文件
Oct 30 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php调用mysql存储过程实例分析
Dec 29 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
php基础教程
Aug 26 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
php 分页函数multi() discuz
Jun 21 #PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 #PHP
discuz7 phpMysql操作类
Jun 21 #PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 #PHP
ie6 动态缩略图不显示的原因
Jun 21 #PHP
PHP COOKIE设置为浏览器进程
Jun 21 #PHP
PHP 输出缓存详解
Jun 20 #PHP
You might like
神族 Protoss 剧情介绍
2020/03/14 星际争霸
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
JS实现多选框的操作
2020/06/24 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
python实现连接mongodb的方法
2015/05/08 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python3.x实现base64加密和解密
2019/03/28 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
法国太阳镜店:Sunglasses Shop
2016/08/27 全球购物
印尼在线购买隐形眼镜网站:Lensza.co.id
2019/04/27 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
自我鉴定范文300字
2013/10/01 职场文书
关于工资低的辞职信
2014/01/14 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
财务负责人岗位职责
2015/02/03 职场文书
公务员政审个人总结
2015/02/12 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android