PHP 응용 프로그램을 개발할 때는 종종 여러 디렉토리간에 코드 모듈을 구성하고 재사용해야합니다. PHP는 포함 , 요구 및 기타 진술과 같은 명령문을 포함하여, 요구 및 기타 진술을 올바르게 찾을 수 있도록 get_include_path () 및 set_include_path () 함수를 제공하여 포함 된 경로를 유연하게 관리합니다. 이 기사는이 두 기능과 실제 응용 시나리오의 사용법을 자세히 소개합니다.
get_include_path ()는 현재 PHP에 대한 포함 경로 설정을 얻는 데 사용됩니다. 포함 경로는 PHP가 포함 된 파일을 찾는 디렉토리 목록입니다.
echo get_include_path();
출력은 다음과 유사합니다.
.:/usr/local/lib/php
즉, PHP는 먼저 현재 디렉토리 ( . )에서 파일을 찾은 다음 /usr/local/lib/php 에서 파일을 찾습니다.
set_include_path ()를 사용하여 php의 포함 경로를 수정하십시오. 이 기능은 새 경로 목록을 나타내는 문자열을 수용하고 디렉토리는 시스템 경로 분리기 (UNIX/LINUX 시스템의 콜론 : Windows의 세미콜론 ; )로 연결됩니다.
$customPath = '/var/www/html/includes';
set_include_path(get_include_path() . PATH_SEPARATOR . $customPath);
이 코드는 기존 포함 경로를 기반으로 /var/www/html/포함 디렉토리를 추가합니다.
/var/www/html/libs 디렉토리에 배치 된 공개 기능 파일 함수가 있다고 가정 해 봅시다. 이 파일을 기본 프로그램에 포함시키기 위해 다음을 수행 할 수 있습니다.
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/html/libs');
include 'functions.php';
포함 경로를 설정하면 각 파일에서 상대적 또는 절대 경로 참조 모듈을 사용할 필요가 없어 코드의 가독성과 유지 보수 가능성을 향상시킵니다.
현재 포함 경로를 통해 파일을 찾을 수 있는지 확인하려면 stream_resolve_include_path () 함수를 사용할 수 있습니다.
$file = 'config.php';
$resolvedPath = stream_resolve_include_path($file);
if ($resolvedPath !== false) {
echo "파일 위치: $resolvedPath";
} else {
echo "파일을 찾을 수 없습니다 $file";
}
포함 및 요구 사항 은 URL 포장지 (예 : http : // )를 지원할 수 있지만이 방법은 일반적으로 실제 생산 환경에서 권장되지 않습니다. 사용하려면 다음을 수행 할 수 있습니다.
$url = 'http://gitbox.net/includes/config.php';
include $url;
이 원격 포함이 올바르게 작동하려면 allow_url_include 설정을 켜야합니다 (보안상의 이유로 기본값이 꺼집니다).
php.ini에서 수정할 수 있습니다.
allow_url_include = On
또는 코드를 통해 동적으로 설정하십시오.
ini_set('allow_url_include', '1');
get_include_path ()를 사용하여 현재 포함 경로 설정을보십시오.
set_include_path ()를 사용하여 경로를 동적으로 추가하거나 수정하여 코드 모듈화에 편리합니다.
stream_resolve_include_path () 와 함께 파일을 찾을 수 있는지 확인할 수 있습니다.
원격 포함이 지원되지만주의해서 사용해야하며 로컬 경로 관리를 선호해야합니다.
이러한 기능을 합리적으로 사용함으로써 PHP 프로젝트의 구조적 선명도와 유지 보수 가능성을 크게 향상시킬 수 있습니다.