学习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和ACCESS写聊天室(八)
Oct 09 PHP
第十五节--Zend引擎的发展
Nov 16 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
php实现用户在线时间统计详解
Oct 08 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
ThinkPHP实现一键清除缓存方法
Jun 26 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
YII框架关联查询操作示例
Apr 29 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP学习资料汇总与网址
2007/03/16 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
CI框架的安全性分析
2016/05/18 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
utf8的编码算法 转载
2006/12/27 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
Django ORM filter() 的运用详解
2020/05/14 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
计算机专业职业规划
2014/02/28 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
小学生新年寄语
2014/04/03 职场文书
基层党员对照检查材料
2014/08/25 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
四风自我剖析材料
2014/09/30 职场文书
上下班时间调整通知
2015/04/23 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python