[英]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 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();
$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.