学习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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
PHP中cookie知识点学习
May 06 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 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
自定义session存储机制避免会话保持问题
2014/10/08 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
javascript数组的使用
2013/03/28 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
Javascript Objects详解
2014/09/04 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
2019/11/15 Python
tensorflow常用函数API介绍
2020/04/19 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
详解使用CSS3的@media来编写响应式的页面
2017/11/01 HTML / CSS
Java的基础面试题附答案
2016/01/10 面试题
怎么处理XML的中文问题
2015/03/26 面试题
一名老师的自我评价
2014/02/07 职场文书
十八大标语口号
2014/10/09 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android