1. 우리가 그누에 새로운 페이지를 만들거나 등등 그누의 기본 환경을 사용하려면
반드시 그누루트에 있는 common.php 를 "상대경로"로 인클루드 해야 합니다.
2. 그런데 이럴 때마다 ../ 를 몇개 붙여야 할지 헷갈리고 더구나 모바일 스킨과 pc 스킨은 이게 한끗발이 차이가 나며 테마를 사용할 때라거나 여러가지 성가시고 귀찮은 점이 많아서 코드를 한번 만들어 보았습니다.
3, 코드를 보면 아시겠지만 현재의 위치에서 "adm", "bbs", "extend" 디렉토리가 존재한다면
그 위치의 common.php 를 인클루드하고
아니라면 한단계 위의 부모 디렉토리로 치고 올라가서 같은 작업을 수행하고...
계속 동일한 형태로 진행하다 결국 조건에 맞는 상황이 되면 드디어 common.php 를 인클루드하는 while 문으로 구성했습니다.
4. 만일 "adm", "bbs", "extend" 외에 더 엄밀성을 주고 싶다면 원하는 디렉토리를 본인의 의도만큼 배열 안으로 계속 넣어주면 되겠습니다.^^
<?php
function is_common($inc) {
$root_dir = ["adm", "bbs", "extend"];
$dir_count = 0;
foreach ($root_dir as $g5_dir) if (is_dir($inc.$g5_dir)) $dir_count += 1;
return $dir_count == count($root_dir);
}
if (is_common("./")) $common_include = "./common.php";
else {
$parent_dir = "../";
while (!is_common($parent_dir)) $parent_dir .= "../";
$common_include = $parent_dir."common.php";
}
include_once($common_include);
?>