다른 운영 체제는 다른 경로 분리기를 사용합니다.
Windows 에서 경로 분리기는 백 슬래시 ( \ )입니다.
Linux 및 MacOS 에서 경로 분리기는 전방 슬래시 ( / )입니다.
예를 들어, Windows의 파일 경로는 C : \ XAMPP \ HTDOCS \ Project 및 /var/www/html/프로젝트 와 같이 보일 수 있습니다.
즉, 크로스 플랫폼 PHP 스크립트를 작성할 때 운영 체제를 동적으로 판단하고 오류를 피하기 위해 적절한 경로 분리기를 선택해야합니다.
PHP는 실행중인 환경을 기반으로 올바른 경로 분리기를 자동으로 선택할 수있는 상수 Directory_separator를 제공합니다. 이 상수는 Windows에 BackSlash \ 값과 Linux 또는 MacOS에 ForwardSlash / 값이 있습니다. 이 상수를 사용하여 크로스 플랫폼 호환 파일 경로를 구성 할 수 있습니다.
<?php
// 경로 분리기를 동적으로 선택하십시오
$path = "some" . DIRECTORY_SEPARATOR . "folder" . DIRECTORY_SEPARATOR . "file.txt";
// 출력 경로,다른 플랫폼에 자동으로 적응합니다
echo $path;
?>
이 코드는 Windows 또는 Linux 시스템에서 경로 분리기를 올바르게 출력합니다. 예를 들어, Windows에서 일부 \ folder \ file.txt를 출력하고 Linux의 일부/folder/file.txt를 출력하십시오.
파일 경로의 정확성을 보장하기 위해 RealPath () 함수를 사용하여 파일의 절대 경로를 얻고 경로의 상대 부분을 자동으로 해결할 수 있습니다. 이 기능은 시스템에서 인식하는 표준화 된 경로를 반환하여 스크립트의 교차 플랫폼 호환성을 더욱 보장합니다.
<?php
// 파일의 절대 경로를 얻으십시오
$absolutePath = realpath('some/folder/file.txt');
// 출력 절대 경로
echo $absolutePath;
?>
RealPath ()를 사용한 후에는 상대 경로 나 상징적 링크가 파일 경로에서 사용 되더라도 시스템의 표준 경로를 반환하여 교차 플랫폼 일관성을 더욱 보장 할 수 있습니다.
URL과 관련하여 다른 플랫폼으로 URL의 구문 분석 차이에주의를 기울여야합니다. URL의 경로 분리기는 운영 체제에 관계없이 항상 전방 슬래시 / 를 사용합니다.
URL 경로가 코드에 관련되어 있으면 Forward Slash 를 직접 사용할 수 있으며 Windows에서 실행하더라도 잘못되지 않습니다.
<?php
// 사용 m66.net 바꾸다 URL 도메인 이름
$url = "https://m66.net/some/folder/file.txt";
// 산출 URL
echo $url;
?>
이 코드의 URL 출력은 항상 전방 슬래시 를 사용하며 Windows 시스템에서도 오류가 발생하지 않습니다.
일부 복잡한 응용 프로그램에서는 운영 체제를 기반으로 경로를 동적으로 구성해야 할 수도 있습니다. directory_separator constant와 php_os 상수를 결합하여 현재 운영 체제를 결정한 다음 해당 조정을 수행 할 수 있습니다.
<?php
// 현재 운영 체제 유형을 가져옵니다
$os = PHP_OS;
// 운영 체제에 따라 다른 경로 분리기를 선택하십시오
if ($os == 'WINNT' || $os == 'Windows') {
$separator = '\\'; // Windows 系统사용反斜杠
} else {
$separator = '/'; // Linux/macOS 系统사용正斜杠
}
// 경로를 동적으로 구성합니다
$path = "some" . $separator . "folder" . $separator . "file.txt";
// 출력 경로
echo $path;
?>
이 코드는 운영 체제에 따라 경로 분리기를 동적으로 조정하고 Windows 및 Linux 시스템 모두에서 올바르게 작동합니다.
directory_separator constant를 사용하십시오 : 이것은 경로 분리기를 다루는 가장 쉬운 방법이며 PHP는 적절한 분리기를 자동으로 선택합니다.
RealPath () 기능 사용 : 경로를 표준화하고 상대 경로와 같은 문제를 해결할 수 있습니다.
전방 슬래시 사용 / URL을 처리 할 때 : URL의 경로 분리기는 운영 체제에 관계없이 항상 슬래시입니다.
PHP_OS 상수와 함께 동적 조정 경로 :보다 복잡한 요구 사항을 위해 운영 체제를 수동으로 판단하고 다른 분리기를 선택할 수 있습니다.
이러한 방법을 사용하면 PHP 스크립트가 다른 운영 체제에서 제대로 작동하여 경로 분리기로 인한 호환성 문제를 피할 수 있습니다.