문제

PHP 포함 경로를 설정할 수 있습니다. php.ini:

include_path = /path/to/site/includes/

하지만 다른 웹사이트도 영향을 받아 좋지 않습니다.

모든 파일의 시작 부분에 PHP 포함을 설정할 수 있습니다.

$path = '/path/to/site/includes/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

그러나 그것은 나쁜 습관처럼 보이고 일을 혼란스럽게 만듭니다.

따라서 이를 포함시킨 다음 모든 파일에 포함시킬 수 있습니다.

include 'includes/config.php';

또는

include '../includes/config.php';

이것이 내가 지금 하고 있는 일이지만, 포함 경로는 config.php 무엇을 포함하는지에 따라 달라집니다.

더 좋은 방법이 있나요?그게 그렇게 중요한 건가?

도움이 되었습니까?

해결책

Apache를 웹 서버로 사용하는 경우 다음을 사용하여 설정을 무시할 수 있습니다(허용하는 경우). .htaccess 파일.보다 PHP 매뉴얼 자세한 내용은.

기본적으로 다음과 같은 파일을 넣습니다. .htaccess 일부 PHP가 포함된 웹사이트 루트에 ini 가치.재정의를 허용하도록 Apache를 구성한 경우 이 사이트는 PHP 구성의 모든 값과 사용자가 .htaccess 파일.

다음과 함께만 사용할 수 있습니다. PHP_INI_ALL 그리고 PHP_INI_PERDIR 유형 지시문

내가 링크한 페이지에 명시된 대로.전체 목록을 클릭하면 포함 경로가 PHP_INI_ALL 지령.

다른 팁

Erik Van Brakel은 IMHO에게 최고의 답변 중 하나를 제시했습니다.

또한 Apache 및 가상 호스트를 사용하는 경우 해당 호스트에 직접 포함을 설정할 수 있습니다.이 방법을 사용하면 .htaccess에 php_admin 명령을 남겨두는 것을 기억할 필요가 없습니다.

사용 php.ini 웹사이트에 있는 파일 뿌리, 설정에서 다음을 사용하는 경우 PHP ~처럼 CGI (공유 호스트에서 가장 빈번한 경우) 서버 전체와 동일한 구문을 사용합니다. php.ini;그것을 넣어 .htaccess Apache 모듈로 PHP가 있는 경우(다음을 수행하십시오. phpinfo() 확실하지 않은 경우):

php_value include_path "wherever"

폴더별로 참고하세요 php.ini does 영향을 미치지 않는다 하위 폴더.

경로를 포함하기 위해 추가하는 것이 왜 나쁜 습관이라고 생각하시나요?

루트 스크립트 상단 근처의 이 코드는 그다지 나쁘지 않습니다...

$path = '/path/to/site/includes/';
set_include_path($path . PATH_SEPARATOR . get_include_path());

IMHO의 가장 큰 장점은 Apache뿐만 아니라 이식 가능하고 호환된다는 것입니다.

편집하다:나는 이 방법의 단점을 보았다:작은 성능 영향.보다 http://www.geeksengine.com/article/php-include-path.html

호스트 설정 방법에 따라 php.ini 추가 구성 지시문을 사용하여 홈 디렉터리의 루트에 있는 파일입니다.

애플리케이션에는 PHP로 작성된 구성 파일이 있어야 합니다.그런 다음 프로그램의 모든 페이지에 상대 페이지를 포함시킵니다.해당 구성 파일에는 포함 디렉터리, 템플릿 디렉터리, 이미지 디렉터리 등에 대한 경로에 대한 변수가 있습니다.

설정할 수 있습니다 include_path php.ini 파일에도 있습니다.저는 Perl 사용자이므로 포함을 로드하고 include 옳은 일을 하세요.모든 포함 항목은 특정 디렉토리에 추가되어 있습니다. include_path.나는 다음과 같은 일을 할 수 있습니다

require_once "ClassName.php";

파일의 상대 경로나 위치에 대해 걱정할 필요가 없습니다.

나는 또한 내 자신을 썼다 CustomRequire 다음과 같은 일을 하기 위해

function CustomRequire ($file) {
    if(defined('MYINCLUDEPATH')) {
        require_once MYINCLUDEPATH . "/$file";
    } else {
        require_once $file;
    }
}

그렇게 하면 나중에 포함 방법을 변경할 수 있습니다.물론, 포함 코드를 포함하는 방법을 찾아야 합니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top