PHP에 절대 및 상대 경로 포함
서버에서든 로컬 PC에서든 PHP 프로그램을 실행하는 경로는 차이를 만들고 중요합니다. 잘못된 디렉토리에서 실행 중인 경우 상대 및 절대 경로의 두 가지 유형을 사용하는 방법을 이해하는 것이 중요합니다.
둘 다 중요하지만, 특히 절대 경로보다는 전체 PHP 애플리케이션의 컨텍스트 내에서 절대 경로를 자주 사용할 수 있습니다.
이 기사에서는 PHP 내에서 절대 경로와 상대 경로를 사용하거나 포함하는 방법을 설명합니다.
PHP의 절대 및 상대 경로
PHP 애플리케이션 내에서든 로컬 컴퓨터 내에서든 절대 경로는 시스템의 루트 디렉토리에 상대적인 파일 또는 디렉토리 위치입니다. 그러나 상대 경로는 현재 디렉터리에 상대적인 파일 시스템의 특정 위치를 가리킵니다.
이것은 Unix 또는 Linux의 절대 경로입니다.
/home/user/devs
Windows PC에서 절대 경로는 다음과 같습니다.
C:\AMD\Chipset_Software
그러나 Linux 경로 시스템은 대부분의 PHP 서버에서 자주 사용됩니다.
그러나 상대 경로는 다음과 같이 보일 수 있습니다.
../devs
위의 코드 조각은 devs
디렉토리의 상위 디렉토리를 나타내며 Windows에서 동일한 ..
를 사용할 수 있습니다. C:\Users\HP\Documents
디렉토리에 있다고 가정해 보겠습니다. 아래 명령을 사용하여 HP의 하위인 Downloads 디렉토리로 이동할 수 있습니다.
cd ..\Downloads
include()
및 dirname()
을 사용하여 PHP에서 절대 및 상대 경로 포함
절대 및 상대 경로에 액세스하려면 dirname()
함수와 __FILE__
이라는 마법 상수가 필요합니다. 마법 상수 __FILE__
은 실행 중인 PHP 파일의 전체 경로와 이름을 반환합니다.
dirname()
함수는 상위 디렉토리의 경로를 반환합니다. __FILE__
과 dirname()
함수를 함께 사용하면 include
키워드를 통해 상호 작용하는 파일이 동일한 디렉토리 내에 있다는 가정 하에 처리 중인 파일의 절대 루트 경로를 얻을 수 있습니다. .
include(dirname(__FILE__).'/functions.php');
dirname(__FILE__)
의 결과는 다음과 같습니다.
/home/runner/ScholarlyOvalFirewall
그러나 우리가 상호작용하는 PHP 파일이 현재 작업 디렉토리의 상위 디렉토리 내에 있다고 가정합니다. 이 경우 후행 슬래시 없이 현재 파일의 디렉토리를 반환하므로 __DIR__
상수를 사용할 수 있습니다.
include(dirname(__DIR__).'/functions.php');
dirname(__FILE__)
의 결과는 다음과 같습니다.
/home/runner/
예를 들어, 상대 경로만 사용하려고 하는데 아래 함수를 만들어 수행할 수 있습니다.
function relativepath($to){
$a=explode("/",dirname(__FILE__));
$index= array_search("$to",$a);
$str="";
for ($i = 0; $i < count($a)-$index-2; $i++) {
$str.= "../";
}
return $str;
}
$st = relativepath('main.php');
echo $st;
함수의 인수는 PHP 파일의 이름이며 /
기호를 통해 절대 경로 문자열을 배열로 나누고 지정된 PHP 파일을 검색하여 작동합니다. 그런 다음 ../
시리즈가 $str
변수에 추가되어 루트에 대한 상대 경로를 제공합니다.
또한 필요에 따라 dirname()
함수, define()
함수 및 마법 상수 __DIR__
및 __FILE__
을 사용하여 루트 경로를 정의할 수 있습니다.
define('ROOT_PATH', dirname(__DIR__) . '/');
ROOT_PATH
는 이제 /home/runner
입니다.
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn