当脚本在Apache下运行时,我将$_SERVER['SERVER_NAME']值插入到错误报告电子邮件消息中。
但是,如果Web脚本使用nohup php ...派生一个“工作者”作业,则$_SERVER['SERVER_NAME']在那里看起来是空的。因此,如果发生错误,报告时将不带主机名。
我可以不调用Unix hostname命令,通过PHP可靠地获取主机名吗?
发布于 2008-10-17 12:11:27
(PHP4 >= 4.0.2,PHP5)
PHP -返回有关运行php_uname的操作系统的信息
PHP ()返回对运行php_uname的操作系统的描述。这与您在phpinfo()输出顶部看到的字符串相同。对于操作系统的名称,可以考虑使用PHP_OS常量,但请记住,该常量将包含构建PHP时所基于的操作系统。
在某些较旧的UNIX平台上,它可能无法确定当前的操作系统信息,在这种情况下,它将恢复为显示构建PHP的操作系统。只有当您的uname()库调用不存在或不起作用时,才会发生这种情况。
发布于 2013-07-18 04:54:53
$hostname = gethostname();
对于PHP < 5.3.0 but >= 4.2.0 use this
$hostname = php_uname('n');
对于低于4.2.0的PHP,您可以尝试以下方法之一:
$hostname = getenv('HOSTNAME');
$hostname = trim(`hostname`);
$hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a')); 发布于 2008-10-19 13:17:37
您可以使用_GLOBALS['MACHINENAME']直接从globals array获取信息。
https://stackoverflow.com/questions/211885
复制相似问题