PHP에서 현재 작업 디렉토리를 얻는 것은 파일 읽기, 경로 설정 등과 같은 많은 시나리오에서 매우 중요한 작업입니다. PHP는 경로 정보를 얻는 다양한 방법을 제공하며, 그 중 getcwd () 및 get_include_path () 는 일반적으로 사용되는 두 가지 기능입니다. 이 기사에서는이 두 기능의 역할을 소개하고 현재 작업 디렉토리로가는 경로를 얻기 위해이를 결합하여 사용하는 방법을 보여줍니다.
getCWD () 는 PHP의 내장 기능입니다. 전체 이름은 "Get Current Working Directory"입니다. 이는 현재 작업 디렉토리를 얻는 것을 의미합니다. 이 디렉토리는 스크립트가 실행되는 디렉토리입니다. 일반적으로 절대 경로를 반환합니다.
예:
<?php
echo getcwd();
?>
출력은 다음과 같습니다.
/var/www/html/project
이 경로는 현재 스크립트 실행의 작업 디렉토리입니다.
get_include_path ()는 PHP 구성에서 포함 경로 (포함), 즉 파일을 찾을 때 PHP가 검색 할 경로 모음을 얻는 데 사용됩니다. 경로에는 세미콜론 (창) 또는 콜론 (Linux/MacOS)으로 분리 된 여러 디렉토리가 포함될 수 있습니다.
예:
<?php
echo get_include_path();
?>
출력 예 :
.:/usr/local/lib/php
여기서 점은 현재 디렉토리를 나타냅니다.
getcwd ()가 현재 작업 디렉토리를 직접 얻을 수 있지만, 때로는 include_path 의 현재 작업 디렉토리의 위치를 알고 있거나 포함 _path 의 상대 경로를 절대 경로로 변환해야합니다. 현재 두 가지 용도를 결합하면 경로를보다 유연하게 처리 할 수 있습니다.
<?php
// 현재 작업 디렉토리를 얻으십시오
$currentDir = getcwd();
echo "현재 작업 디렉토리는 다음과 같습니다: " . $currentDir . "\n";
// 얻다 include_path
$includePath = get_include_path();
echo "include_path 내용은입니다: " . $includePath . "\n";
// 할 것이다 include_path 배열로 나뉩니다
$paths = explode(PATH_SEPARATOR, $includePath);
// 트래버스 경로,출력 전체 경로
foreach ($paths as $path) {
if ($path === '.' || $path === '') {
// 현재 디렉토리를 사용하십시오 getcwd() 대안
$absolutePath = $currentDir;
} else {
// 다른 경로는 변하지 않습니다
$absolutePath = $path;
}
echo "절대 경로: " . $absolutePath . "\n";
}
?>
현재 작업 디렉토리는 다음과 같습니다: /var/www/html/project
include_path 내용은입니다: .:/usr/local/lib/php
절대 경로: /var/www/html/project
절대 경로: /usr/local/lib/php
include_path 의 도트는 현재 디렉토리를 나타냅니다 . 여기서 우리는 그것을 getcwd () 에 의해 얻은 경로로 바꿉니다.
이렇게하면 포함 된 경로 목록을 포함 할 수 있습니다. 각 경로는 절대 경로이며 프로그램이 파일을 검색하거나 처리하는 데 편리합니다.
include_path 에 따라 일부 리소스 파일을 읽어야하는 프로젝트가 있다고 가정 해 봅시다. 먼저 위의 방법을 사용하여 상대 경로를 절대 경로로 변환하여 경로 문제로 인해 파일을 찾을 수없는 것을 피할 수 있습니다.
또한이 두 기능을 결합하면 경로가 더 유연하게 관리 할 수 있습니다. 특히 환경이나 배포에서 경로가 다를 때 코드가 더 휴대 할 수 있습니다.
getCWD ()는 현재 작업 디렉토리, 일반적으로 스크립트가 실행중인 디렉토리를 가져 오지만 코드가 포함되거나 실행중인 환경이 다르면 결과가 다를 수 있습니다.
include_path는 php.ini로 구성하거나 set_include_path () 를 통해 동적으로 설정할 수 있습니다.
경로 분리기는 운영 체제에 따라 다릅니다. PHP 내장 상수를 사용하여 Path_Separator 및 Directory_separator를 사용하면 호환성을 향상시킬 수 있습니다.
getCwd ()는 현재 작업 디렉토리로의 절대 경로를 직접 반환합니다.
get_include_path () 리턴 PHP에는 경로 설정이 포함되어 있으며 상대 및 절대 경로가 포함될 수 있습니다.
조합하여 포함 된 경로의 모든 상대 경로 (예 :) 는 파일 작동을 용이하게하는 절대 경로로 변환 될 수 있습니다.
PHP 개발자는이 두 기능을 합리적으로 활용하여 파일 경로를 더 잘 제어하고 경로 오류로 인한 문제를 피할 수 있습니다.
<?php
// 포괄적 인 샘플 기능:반품 include_path 中所有路径的절대 경로数组
function getAbsoluteIncludePaths() {
$currentDir = getcwd();
$includePaths = explode(PATH_SEPARATOR, get_include_path());
$absolutePaths = [];
foreach ($includePaths as $path) {
if ($path === '.' || $path === '') {
$absolutePaths[] = $currentDir;
} else {
$absolutePaths[] = $path;
}
}
return $absolutePaths;
}
// 전화 예제
$paths = getAbsoluteIncludePaths();
foreach ($paths as $p) {
echo $p . PHP_EOL;
}
?>
이 코드 스 니펫은 모든 절대 경로를 포함하는 배열을 쉽게 가져올 수 있으며, 이는 후속 경로 처리에 편리합니다.