学习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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
实用函数4
Nov 08 PHP
php压缩多个CSS为一个css的代码并缓存
Apr 21 PHP
PHP输入流php://input介绍
Sep 18 PHP
PHP获取http请求的头信息实现步骤
Dec 16 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
php查询ip所在地的方法
Dec 05 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
php将金额数字转化为中文大写
Jul 09 PHP
PHP读取mssql json数据中文乱码的解决办法
Apr 11 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 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中strlen和mb_strlen的区别
2014/08/31 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
php实现简单文件下载的方法
2015/01/30 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
Python正则表达式介绍
2012/08/06 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
Python 音频生成器的实现示例
2019/12/24 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
python中def是做什么的
2020/06/10 Python
浅析Python 多行匹配模式
2020/07/24 Python
Html5写一个简单的俄罗斯方块小游戏
2019/12/03 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
《风娃娃》教学反思
2014/04/19 职场文书
老干部工作汇报材料
2014/10/28 职场文书
龙门石窟导游词
2015/02/02 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang