繁体   English   中英

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

[英]Is there a PHP function or variable giving the local host name?

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

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

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

php_uname( “N”)

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

php_uname()返回PHP正在运行的操作系统的描述。 这是您在phpinfo()输出的最顶部看到的相同字符串。 对于操作系统的名称,请考虑使用PHP_OS常量,但请记住,此常量将包含PHP构建的操作系统。

在一些较旧的UNIX平台上,它可能无法确定当前的操作系统信息,在这种情况下它将恢复为显示构建的PHP操作系统。 只有在uname()库调用不存在或不起作用时才会发生这种情况。

对于PHP> = 5.3.0,请使用

$hostname = gethostname();

对于PHP <5.3.0但是> = 4.2.0使用此

$hostname = php_uname('n');

对于PHP <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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM