로컬 호스트 이름을 제공하는 PHP 함수 또는 변수가 있습니까?

StackOverflow https://stackoverflow.com/questions/211885

  •  03-07-2019
  •  | 
  •  

문제

스크립트가 Apache 아래에서 실행되면 삽입합니다 $_SERVER['SERVER_NAME'] 전자 메일 메시지를보고 오류에 대한 가치.

그러나 웹 스크립트가 "작업자"작업을하는 경우 nohup php ..., $_SERVER['SERVER_NAME'] 거기에서 비어있는 것 같습니다. 따라서 오류가 발생하면 호스트 이름없이보고됩니다.

UNIX에 전화하지 않고 PHP를 통해 호스트 이름을 안정적으로받을 수 있습니까? hostname 명령?

도움이 되었습니까?

해결책

php_uname ( "n")

(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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top