是否有PHP函数或变量给出本地主机名?

时间:2008-10-17 12:06:24

标签: php hostname

当脚本在Apache下运行时,我会在报告电子邮件的错误中插入$_SERVER['SERVER_NAME']值。

但是,如果Web脚本使用nohup php ...分配“工作”作业,则$_SERVER['SERVER_NAME']似乎为空。因此,如果发生错误,则报告没有主机名。

我可以通过PHP可靠地获取主机名,而无需调用Unix hostname命令吗?

3 个答案:

答案 0 :(得分:14)

php_uname("n")

  

(PHP 4> = 4.0.2,PHP 5)
  php_uname - 返回有关的信息   操作系统PHP正在运行

     

php_uname()返回PHP操作系统的描述   继续前进。这是你在最顶部看到的相同字符串   phpinfo()输出。仅作为操作系统的名称,请考虑   使用PHP_OS常量,但要记住这个常量将包含   操作系统PHP是基于。

     

在某些较旧的UNIX平台上,它可能无法确定   当前的操作系统信息,在这种情况下,它将恢复显示   OS PHP是建立在。只有你的uname()库才会发生这种情况   呼叫要么不存在要么不起作用。

答案 1 :(得分:1)

PHP >= 5.3.0 use this

$hostname = gethostname();

PHP < 5.3.0 but >= 4.2.0 use this

$hostname = php_uname('n');

对于PHP&lt; 4.2.0你可以试试其中之一:

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

答案 2 :(得分:0)

您可以使用_GLOBALS['MACHINENAME']直接从globals array获取信息。