2008-10-17 6 views
5

Lorsqu'un script s'exécute sous Apache, j'insère la valeur $_SERVER['SERVER_NAME'] dans un message de message d'erreur.Existe-t-il une fonction PHP ou une variable donnant le nom d'hôte local?

Cependant, si un script Web forge un travail "worker" avec nohup php ..., $_SERVER['SERVER_NAME'] semble être vide. Ainsi, si une erreur se produit, elle est signalée sans nom d'hôte. Puis-je obtenir le nom d'hôte de manière fiable au moyen de PHP sans appeler la commande Unix hostname?

Répondre

14

php_uname("n")

(PHP 4> = 4.0.2, PHP 5)
php_uname - Renvoie des informations sur le PHP du système d'exploitation fonctionne sur

php_uname() renvoie une description de la système d'exploitation PHP est en cours d'exécution. C'est la même chaîne que vous voyez tout en haut de la sortie phpinfo() . Pour le nom du système d'exploitation, considérez en utilisant la constante PHP_OS, mais gardez à l'esprit que cette constante contiendra le système d'exploitation sur lequel PHP a été construit. Sur certaines plates-formes UNIX plus anciennes, il peut être impossible de déterminer les informations sur le système d'exploitation , auquel cas il affichera le système d'exploitation sur lequel PHP a été construit. Cela ne se produira que si votre appel à la bibliothèque uname() n'existe pas ou ne fonctionne pas.

0

Vous pouvez utiliser _GLOBALS['MACHINENAME'] pour obtenir les informations directement à partir de la globalsarray.

Questions connexes