Define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));
이것은 포럼 설치 루트 디렉터리를 정의하는 discuz의 상수입니다. 이제 이 매우 간단하지만 매우 실용적인 상수를 분석해 보겠습니다.
먼저 이 글에서는 common.inc.php 파일의 절대경로가 F:webrootbbsincludecommon.inc.php라고 가정하고 있다는 점을 설명드립니다.
이 문장은 discuz의 include/common.inc.php에 포함되어 있습니다. 먼저 DISCUZ_ROOT 상수의 값을 살펴보겠습니다: F:webrootbbs
다음으로 이 문장을 자세히 분석해 보겠습니다.
define()은 물론 여기서는 상수를 정의합니다. DISCUZ_ROOT라는 상수입니다.
substr(), 이것은 문자열 차단 함수입니다. substr('123456789', 0, -2) 문장은 1234567을 반환합니다.
dirname(__FILE__), __FILE__은 매직 상수입니다. 매뉴얼에는 "파일의 전체 경로와 파일 이름입니다. 포함 파일에 사용된 경우 포함 파일 이름이 반환됩니다. PHP 4.0.2부터 __FILE__ 항상 절대 경로가 포함되어 있지만 이전 버전에는 때때로 상대 경로가 포함되어 있었습니다." dirname()은 경로의 디렉터리 부분을 반환합니다. dirname(__FILE__)은 문자열을 포함하는 획득된 F:webrootbbsinclude인 것 같습니다.
define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));은 문자열 F:webrootbbsinclude에서 마지막 7자를 뺀 것입니다: F:webrootbbs
포함하는 경우 폴더가 lib로 변경되면 -7을 -3으로 변경해야 합니다.
나중에 프로그램에서 파일을 참조할 때 require_once DISCUZ_ROOT 로 작성하면 됩니다. './test.php' 이 문장의 실제 내용은 require_once F:webrootbbs./test.php 입니다.
위 내용은 discuz가 제공하는 파일을 소개하기 위해 discuz php를 학습하기 위한 DISCUZ_ROOT 방법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.