Gibt es eine PHP-Funktion oder Variable, die den lokalen Host-Namen zu geben?
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?
Lösung
(PHP 4> = 4.0.2, PHP 5)
php_uname - Liefert Informationen über die Betriebssystem PHP läuft aufphp_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.