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

但是,如果Web脚本分叉<!>“worker <!>”; nohup php ...hostname的工作似乎是空的。因此,如果发生错误,则报告没有主机名。

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

有帮助吗?

解决方案

php_uname(<!> quot; n <!> quot; )

  

(PHP 4 <!> gt; = 4.0.2,PHP 5)
  php_uname <!>#8212;返回有关的信息   操作系统PHP正在运行

     

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

     

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

其他提示

对于 PHP <!> gt; = 5.3.0使用此

$hostname = gethostname();

PHP <!> lt; 5.3.0但<!> gt; = 4.2.0使用此

$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')); 

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top