substr(dirname(__FILE__), 0, -7))

在dizcuz的common.inc.php文件里有一个:define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));
在sablog的common.php文件里有一个:define('SABLOG_ROOT', substr(dirname(__FILE__), 0, -7));

一直不理解是什么意思...
今天查了手册...

define是定义常量了..

stringdirname( string $path )
给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。

substr是截取字符串...
为什么是-7呢???
对,因为他们都恰好在include文件夹内,数数字母个数,恰好是7个...
这样定义的常量正好就是根目录的绝对地址了....

通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题。

dirname(dirname(__FILE__));
假设__FILE__为 /home/web/config/config.php
上面的方法输出为 /home/web
dirname(dirname(__FILE__));得到的是文件上一层目录名
dirname(__FILE__);得到的是文件所在层目录名

你可能感兴趣的:(PHP)