Existe-t-il une fonction ou une variable PHP donnant le nom de l'hôte local?

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

  •  03-07-2019
  •  | 
  •  

Question

Lorsqu'un script s'exécute sous Apache, j'insère une $_SERVER['SERVER_NAME'] valeur dans un message électronique de signalement d'erreur.

Cependant, si un script Web crée un " travailleur " travail avec nohup php ..., hostname semble y être vide. Ainsi, si une erreur se produit, elle est signalée sans nom d'hôte.

Puis-je obtenir de manière fiable le nom d'hôte au moyen de PHP, sans appeler la commande Unix <=>?

Était-ce utile?

La solution

php_uname (" n " )

  

(PHP 4 > = 4.0.2, PHP 5)
  php_uname & # 8212; Renvoie des informations sur le   système d'exploitation PHP s'exécute sur

     

php_uname () renvoie une description du système d'exploitation PHP.   courir sur. C'est la même chaîne que vous voyez tout en haut de la   phpinfo () en sortie. Pour le nom du système d'exploitation uniquement, considérez   en utilisant la constante PHP_OS, mais gardez à l'esprit que cette constante contiendra   le système d'exploitation PHP a été construit sur.

     

Sur certaines anciennes plates-formes UNIX, il peut ne pas être en mesure de déterminer la   informations sur le système d'exploitation actuel, auquel cas, il revient à l'affichage de la   OS PHP a été construit sur. Cela ne se produira que si votre bibliothèque uname ()   appel n’existe pas ou ne fonctionne pas.

Autres conseils

Pour PHP > = 5.3.0 utilisez cette :

$hostname = gethostname();

Pour PHP < 5.3.0 mais & Gt; = 4.2.0 utilisez ceci :

$hostname = php_uname('n');

Pour PHP < 4.2.0, vous pouvez essayer l’un de ceux-ci:

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

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top