学习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 相关文章推荐
使用adodb lite解决问题
Dec 31 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
PHP中的替代语法简介
Aug 22 PHP
php实现的zip文件内容比较类
Sep 24 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
关于laravel 子查询 & join的使用
Oct 16 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面向对象的方法重载两种版本比较
2008/09/08 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
python迭代器的使用方法实例
2013/11/21 Python
Python绘制七段数码管实例代码
2017/12/20 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
学校领导班子对照检查材料
2014/08/28 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
2014年公务员工作总结
2014/11/18 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
退伍军人感言
2015/08/01 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书