学习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 相关文章推荐
Phpbean路由转发的php代码
Jan 10 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
浅谈php冒泡排序
Dec 30 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
Apr 09 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
初识PHP中的Swoole
Apr 05 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 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 getsiteurl()函数
2009/09/05 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
微信小程序实现发红包功能
2018/07/11 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
python自带的http模块详解
2016/11/06 Python
详解Python多线程
2016/11/14 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
python自动发微信监控报警
2019/09/06 Python
python如何将两个txt文件内容合并
2019/10/18 Python
Python多线程获取返回值代码实例
2020/02/17 Python
python 如何设置守护进程
2020/10/29 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
机关门卫岗位职责
2013/12/30 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
家长学校实施方案
2014/03/15 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
干部个人考察材料
2014/12/24 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书