Gibt es eine PHP-Funktion oder Variable, die den lokalen Host-Namen zu geben?

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

  •  03-07-2019
  •  | 
  •  

Frage

Wenn ein Skript unter Apache läuft, füge ich $_SERVER['SERVER_NAME'] Wert in einen Fehler meldet E-Mail-Nachricht.

Wenn jedoch eine Web-Skript Gabeln eines „Arbeiter“ Job mit nohup php ..., erscheint $_SERVER['SERVER_NAME'] leer, dort zu sein. Wenn also ein Fehler auftritt, ohne einen Host-Namen gemeldet wird.

Kann ich zuverlässig den Hostnamen mit Hilfe von PHP bekommen, ohne hostname Unix-Befehl aufrufen?

War es hilfreich?

Lösung

php_uname ( "n")

  

(PHP 4> = 4.0.2, PHP 5)
  php_uname - Liefert Informationen über die   Betriebssystem PHP läuft auf

     

php_uname () gibt eine Beschreibung des Betriebssystems PHP ist   läuft. Dies ist die gleiche Zeichenfolge, die Sie an der Spitze der sehen   phpinfo () ausgegeben. Für den Namen nur das Betriebssystem, betrachten   die PHP_OS Konstante verwendet, aber halten diese Konstante im Auge enthalten   das Betriebssystem PHP wurde gebaut auf.

     

Auf einigen älteren UNIX-Plattformen, kann es nicht in der Lage sein, das zu bestimmen,   aktuelle Informationen zum Betriebssystem in diesem Fall ist es zufällt die zur Anzeige   O PHP wurde gebaut auf. Dies geschieht nur, wenn Ihr uname () Bibliothek   rufen entweder nicht vorhanden oder funktioniert nicht.

Andere Tipps

PHP> = 5.3.0 Verwendung dieses :

$hostname = gethostname();

PHP <5.3.0 aber> = 4.2.0 Verwendung dieser :

$hostname = php_uname('n');

Für PHP <4.2.0 Sie eine dieser versuchen kann:

$hostname = getenv('HOSTNAME'); 
$hostname = trim(`hostname`); 
$hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a')); 

Sie können _GLOBALS['MACHINENAME'] verwenden die Informationen direkt aus dem globals array zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top