得到网站根目录
对于上面这语句一直不理解是什么意思,查了相关资料有点了结
首先:这个语句由 define(), substr(), dirname()三个函数组成
1. define()
定义和用法 define() 函数定义一个常量。常量类似变量,不同之处在于:
- 在设定以后,常量的值无法更改
- 常量名不需要开头的美元符号 ($)
- 作用域不影响对常量的访问
- 常量值只能是字符串或数字
必需。规定常量的名称是否对大小写敏感。
若设置为 true,则对大小写不敏感。默认是 false(大小写敏感)。
注:第三个参数也是今天看了函数原型学到的,define也可以设置大小写的敏感。
2.dirname(path )
定义和用法 path 参数是一个包含有指向一个文件的全路径的字符串。该函数返回去掉文件名后的目录名。
语法string dirname ( string path )
参数
描述
path
必需。规定要检查的路径。
例子<?php
echo dirname("c:/testweb/home.php");
echo dirname("/testweb/home.php");
?>
输出:
c:/testweb/testweb
3.substr( ) 函数
定义和用法substr() 函数返回字符串的一部分
语法string substr ( string $string , int $start [, int $length ] )
参数
描述 string 必需。规定要返回其中一部分的字符串。 start
必需。规定在字符串的何处开始。
- 正数 - 在字符串的指定位置开始
- 负数 - 在从字符串结尾的指定位置开始
- 0 - 在字符串中的第一个字符处开始
可选。规定要返回的字符串长度。默认是直到字符串的结尾。
- 正数 - 从 start 参数所在的位置返回
- 负数 - 从字符串末端返回
4.__FILE__
__FILE__的路径是当前代码所在文件(而不是url所在 文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址
define(‘DISCUZ_ROOT‘, substr(dirname(__FILE__), 0, -7));
假设 __FILE__为 /home/web/include/common.php
因此
dirname(__FILE__)的返回值就是/home/web/include
substr(dirname(__FILE__), 0, -7))的返回值就是/home/web/
define(‘DISCUZ_ROOT‘, substr(dirname(__FILE__), 0, -7));
就是定义常理DISCUZ_ROOT的值为/home/web/
为什么是-7呢???
对,因为他们都恰好在include文件夹内,数数字母个数,恰好是7个...
这样定义的常量正好就是根目录的绝对地址了....