Domanda

Quando uno script viene eseguito in Apache, inserisco $_SERVER['SERVER_NAME'] valore in un errore che segnala un messaggio di posta elettronica.

Tuttavia, se uno script Web genera un " worker " il lavoro con nohup php ..., hostname sembra essere vuoto lì. Pertanto, se si verifica un errore, viene segnalato senza un nome host.

Posso ottenere in modo affidabile il nome host tramite PHP, senza chiamare il comando Unix <=>?

È stato utile?

Soluzione

php_uname (" n " )

  

(PHP 4 > = 4.0.2, PHP 5)
  php_uname & # 8212; Restituisce informazioni sul   sistema operativo su cui è in esecuzione PHP

     

php_uname () restituisce una descrizione del sistema operativo che è PHP   in esecuzione. Questa è la stessa stringa che vedi all'inizio del file   phpinfo () output. Per il nome del solo sistema operativo, considerare   usando la costante PHP_OS, ma tieni presente che questa costante conterrà   il sistema operativo su cui è stato basato PHP.

     

Su alcune piattaforme UNIX meno recenti, potrebbe non essere possibile determinare il file   informazioni sul sistema operativo corrente nel qual caso tornerà alla visualizzazione di   OS PHP è stato sviluppato. Questo accadrà solo se la tua libreria uname ()   la chiamata non esiste o non funziona.

Altri suggerimenti

Per PHP > = 5.3.0 usa questo :

$hostname = gethostname();

Per PHP < 5.3.0 ma & Gt; = 4.2.0 usare questo :

$hostname = php_uname('n');

Per PHP < 4.2.0 puoi provare uno di questi:

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

Puoi usare _GLOBALS['MACHINENAME'] per ottenere le informazioni direttamente da globals array.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top