学习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 相关文章推荐
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
初学PHP的朋友 经常问的一些问题。不断更新
Aug 11 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
php删除指定目录的方法
Apr 03 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
PHP 访问数据库配置通用方法(json)
May 20 PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 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
输出控制类
2006/10/09 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
DOM事件探秘篇
2017/02/15 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
numpy基础教程之np.linalg
2019/02/12 Python
python分数表示方式和写法
2019/06/26 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
使用tensorflow根据输入更改tensor shape
2020/06/23 Python
python 元组和列表的区别
2020/12/30 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
对标管理实施方案
2014/03/12 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
cf搞笑广告词
2014/03/14 职场文书
支部组织生活会方案
2014/06/10 职场文书
股东出资协议书
2016/03/21 职场文书
Redis唯一ID生成器的实现
2022/07/07 Redis