로컬 호스트 이름을 제공하는 PHP 함수 또는 변수가 있습니까?
문제
스크립트가 Apache 아래에서 실행되면 삽입합니다 $_SERVER['SERVER_NAME']
전자 메일 메시지를보고 오류에 대한 가치.
그러나 웹 스크립트가 "작업자"작업을하는 경우 nohup php ...
, $_SERVER['SERVER_NAME']
거기에서 비어있는 것 같습니다. 따라서 오류가 발생하면 호스트 이름없이보고됩니다.
UNIX에 전화하지 않고 PHP를 통해 호스트 이름을 안정적으로받을 수 있습니까? hostname
명령?
해결책
(PHP 4> = 4.0.2, PHP 5)
php_uname - 운영 체제에 대한 정보를 반환합니다 PHP가 실행 중입니다.php_uname () 운영 체제에 대한 설명을 반환합니다. PHP가 실행 중입니다. 이것은 phpinfo () 출력의 맨 위에서 보는 것과 동일한 문자열입니다. 운영 체제의 이름은 PHP_OS 상수를 사용하는 것을 고려하십시오. 그러나이 상수에는 운영 체제 PHP가 구축 된 운영 체제가 포함됩니다.
일부 이전 UNIX 플랫폼에서는 현재 OS 정보를 결정하지 못할 수 있습니다.이 경우 OS PHP가 구축 된 표시로 되돌릴 수 있습니다. Uname () 라이브러리 호출이 존재하지 않거나 작동하지 않는 경우에만 발생합니다.
다른 팁
을 위한 php> = 5.3.0이를 사용하십시오:
$hostname = gethostname();
을 위한 PHP <5.3.0 그러나> = 4.2.0이를 사용하십시오:
$hostname = php_uname('n');
PHP <4.2.0의 경우 다음 중 하나를 시도 할 수 있습니다.
$hostname = getenv('HOSTNAME');
$hostname = trim(`hostname`);
$hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a'));
당신이 사용할 수있는 _GLOBALS['MACHINENAME']
정보를 바로 얻으려면 globals
array
.