.htaccess에서 php의 include_path로가는 경로를 추가하는 방법
-
16-09-2019 - |
문제
현재 내 사이트에서 다음과 같은 문장을 사용하고 있습니다.
include 'head.php';
include '../head.php';
include '../../head.php';
깊이가 얼마나 많은 중첩 된 폴더 수에 따라. 나는 이것을하는 더 좋은 방법이 있다고 확신합니다.
나는 확신한다 .htaccess
솔루션이지만, 어떻게 구현 해야할지 잘 모르겠습니다. 내가 삽입하면 :
php_value include_path "public/html/root"
... 나는 내 길의 나머지 부분을 잃는다 (/usr/lib/php
, 등). 나는 순진하게 시도했다 :
php_value include_path $include_path . "(path)"
그러나 물론 이것은 작동하지 않았습니다. 이 목록으로가는 단일 경로를 어떻게 준비하거나 추가 할 수 있습니까? .htaccess
?
해결책
편집 할 수 없다면 php.ini
파일 자체, 추가 할 수 있습니다
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
당신 앞에 include
진술.
그러나 당신이 자신을 가지고 있다면 include
또는 require
문제, 아마도 코드 냄새 일 것입니다. 최상의 솔루션은 좋은 객체 지향 디자인입니다. __autoload
기능.
다른 팁
서브 서브 디렉터에서 파일을 만듭니다 .htaccess
내용으로
php_value include_path '../../includes'
또는 무엇이든 include_path
해당 디렉토리에 맞습니다.
장점 :
- 깊이가 다른 여러 포함 된 못생긴 해킹이 없습니다. 단지
include 'head.php'
. - 편집에 의존하지 않습니다
php.ini
. - 사용할 필요가 없습니다
set_include_path()
포함하기 전에. - 상수를 포함하는 것에 대한 의존성은 없습니다
include INCLUDE_PATH . 'head.php'
.
지불 할 가격 :
당신은 각각 파일로 하위 서브 디렉토리를 쓰러 뜨립니다 .htaccess
.
제휴하지 않습니다 StackOverflow