学习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 session处理的定制
Mar 16 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
smarty表格换行实例
Dec 15 PHP
php实现汉字验证码和算式验证码的方法
Mar 07 PHP
php简单生成随机数的方法
Jul 30 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 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实现简单洗牌算法
2013/06/18 PHP
测试php函数的方法
2013/11/13 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
python显示天气预报
2014/03/02 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
简单了解什么是神经网络
2017/12/23 Python
Python GUI编程完整示例
2019/04/04 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
python redis存入字典序列化存储教程
2020/07/16 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
村委会贫困证明
2014/01/14 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
Python Django模型详解
2021/10/05 Python
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server