学习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和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
php变量范围介绍
Oct 15 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php实现的xml操作类
Jan 15 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP解决中文乱码
Apr 28 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 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
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
php获取post中的json数据的实现方法
2011/06/08 PHP
微信支付的开发流程详解
2016/09/13 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
php实现单笔转账到支付宝功能
2018/10/09 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
python得到qq句柄,并显示在前台的方法
2018/10/14 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
python求解汉诺塔游戏
2020/07/09 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
个人求职信范文分享
2014/01/31 职场文书
工作会议方案
2014/05/21 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
刑事附带民事代理词
2015/05/25 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书