define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));
This is a constant in discuz that defines the forum installation root directory. Now let's analyze this very simple but very practical constant.
First of all, let me explain that this article assumes that the absolute path of the common.inc.php file is F:webrootbbsincludecommon.inc.php
This sentence is included in discuz’s include/common.inc.php. First, let’s take a look at DISCUZ_ROOT. The value of the constant: F: webrootbbs
Next, let’s analyze this sentence in detail:
define(), of course, defines a constant. Here it is defining a constant named DISCUZ_ROOT.
substr(), this is a string interception function. The sentence substr(‘123456789’, 0, -2) returns 1234567.
dirname(__FILE__), __FILE__ is a magic constant, the manual says "the full path and file name of the file. If used in an included file, the containing file name is returned. Since PHP 4.0.2, __FILE__ always is to contain an absolute path, whereas previous versions sometimes contained a relative path." dirname(), returns the directory part of the path. It seems that dirname(__FILE__) is the obtained F:webrootbbsinclude containing a string.
It can be seen that define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7)); is the string F:webrootbbsinclude minus the 7 letters at the end: F:webrootbbs
If the include folder is changed If it is lib, then -7 should be changed to -3. Do you understand?
In the future, when referencing files in the program, you can write require_once DISCUZ_ROOT . './test.php'; The actual content of this sentence is require_once F:webrootbbs./test.php
The above introduces the method DISCUZ_ROOT for learning discuz php to introduce files powered by discuz, including the content of powered by discuz. I hope it will be helpful to friends who are interested in PHP tutorials.