PHP 응용 프로그램을 개발할 때는 디버깅 또는 최적화를 위해 서버의 시스템 정보를 얻는 것이 종종 필요합니다. PHP는 매우 유용한 기능을 제공합니다. PHP_UNAME ()는 운영 체제 이름, 버전 번호 등과 같은 시스템에 대한 관련 정보를 얻는 데 도움이 될 수 있습니다. 오늘날 우리는 PHP_UNAME ()를 효과적으로 사용하여 시스템 정보를 얻는 방법, 특히 일반 스크립트를 작성할 때 다양한 운영 체제에 따라 적응하는 방법에 대해 논의합니다.
PHP_UNAME () 은 내장 된 PHP 기능으로, 주로 서버 운영 체제의 자세한 정보를 반환하는 데 사용됩니다. 이 기능을 통해 PHP 스크립트가 실행중인 서버 환경을 쉽게 이해하여 해당 최적화 또는 디버깅을 만들 수 있습니다. 이 기능은 운영 체제 이름, 버전 번호, 하드웨어 아키텍처 및 기타 정보가 포함 된 문자열을 반환합니다.
$system_info = php_uname();
echo $system_info;
위의 코드를 호출 한 후 다음과 유사한 내용이 반환 될 수 있습니다.
Linux myserver 5.4.0-42-generic #46-Ubuntu SMP Thu Jul 9 14:58:19 UTC 2020 x86_64
여기에는 운영 체제 유형 (Linux), 호스트 이름 (MyServer), 커널 버전 (5.4.0-42-Generic) 및 하드웨어 아키텍처 (x86_64)와 같은 정보가 포함됩니다.
php_uname () 함수는 다른 종류의 정보의 반환을 지정하는 선택적 매개 변수를받을 수 있습니다. 구체적 으로이 매개 변수는 다음 값이 될 수 있습니다.
A : 운영 체제 이름, 호스트 이름, 커널 버전, 하드웨어 아키텍처 등과 같은 자세한 정보를 반환합니다 (기본값).
S : 운영 체제의 이름 만 반환합니다 (예 : Linux, Windows, Darwin 등).
R : 운영 체제의 버전 번호를 반환합니다.
V : 운영 체제의 버전 정보를 반환합니다.
M : 하드웨어 아키텍처 유형을 반환합니다 (예 : X86_64, ARM64 등).
echo php_uname('s'); // 출력 운영 체제 이름
echo php_uname('r'); // 출력 운영 체제 버전
echo php_uname('m'); // 출력 하드웨어 아키텍처 유형
php_uname () 을 통해 얻은 시스템 정보는 다른 운영 체제에 따라 조정할 수 있습니다. 예를 들어, 크로스 플랫폼 PHP 응용 프로그램에서 다른 운영 체제를 사용하는 경우 다른 경로 분리기를 처리하거나 다른 시스템 명령을 실행해야 할 수도 있습니다.
$os = php_uname('s'); // 운영 체제 이름을 얻으십시오
if (strpos($os, 'Windows') !== false) {
// 의 경우Windows체계,백 슬래시를 경로 분리기로 사용하십시오
$path_separator = '\\';
} else {
// 그렇지 않으면 전진 슬래시를 사용하십시오
$path_separator = '/';
}
echo "경로 분리기는입니다: " . $path_separator;
$os = php_uname('s'); // 운영 체제 이름을 얻으십시오
if (strpos($os, 'Windows') !== false) {
// 의 경우Windows체계,명령 줄 도구를 사용하십시오
$command = 'dir';
} else {
// 그렇지 않으면 사용하십시오Unix类체계的命令
$command = 'ls -l';
}
exec($command, $output);
echo implode("\n", $output); // 출력 명령 실행 결과
php_uname ()는 매우 유용하지만 경우에 따라 시스템 정보를 얻는 것이 서버의 민감한 정보, 특히 운영 체제 버전 등을 유출 할 수 있습니다. 따라서 프로덕션 환경에서는이 정보를 사용자에게 배포하는 것을 피하는 것이 가장 좋습니다. 얻은 시스템 정보를 관리자에게만 액세스 할 수있는 로그 파일로 제한하거나 스크립트에 적절한 권한 검사를 추가하는 것을 고려하십시오.
실제 개발에서 시스템 정보를 얻은 후 시스템 환경에 따라 특정 URL을 생성해야 할 수도 있습니다. 예를 들어, 다른 운영 체제에 따라 다른 서버 리소스에 연결하십시오.