学习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通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP的mysqli_sqlstate()函数讲解
Jan 23 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
laravel 实现设置时区的简单方法
Oct 10 PHP
laravel 解决Validator使用中出现的问题
Oct 25 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
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
详解Vue2.0里过滤器容易踩到的坑
2017/06/01 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
Python Web框架Tornado运行和部署
2020/10/19 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
使用Python刷淘宝喵币(低阶入门版)
2019/10/30 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
介绍一下常见的木马种类
2014/11/15 面试题
理工类毕业自我鉴定
2014/02/20 职场文书
大学班长竞选稿
2015/11/20 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
深入理解go缓存库freecache的使用
2022/02/15 Golang