是否有提供本地主机名的PHP函数或变量?

是否有提供本地主机名的PHP函数或变量?,php,hostname,Php,Hostname,当脚本在Apache下运行时,我会在错误报告电子邮件中插入$\u SERVER['SERVER\u NAME']值 但是,如果一个Web脚本用nohup php…分叉一个“worker”作业,那么$\u SERVER['SERVER\u NAME']在那里似乎是空的。因此,如果发生错误,将在没有主机名的情况下报告 我是否可以通过PHP可靠地获取主机名,而无需调用Unixhostname命令 (PHP4>=4.0.2,PHP5) php_uname-返回有关 PHP操作系统正在上运行 php_u

当脚本在Apache下运行时,我会在错误报告电子邮件中插入
$\u SERVER['SERVER\u NAME']

但是,如果一个Web脚本用
nohup php…
分叉一个“worker”作业,那么
$\u SERVER['SERVER\u NAME']
在那里似乎是空的。因此,如果发生错误,将在没有主机名的情况下报告

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

(PHP4>=4.0.2,PHP5)
php_uname-返回有关 PHP操作系统正在上运行

php_uname()返回php所在操作系统的描述 继续跑。这是你在最顶端看到的同一根弦 phpinfo()输出。仅考虑操作系统的名称,请考虑 使用PHP_OS常量,但请记住此常量将包含 PHP操作系统是建立在这个基础上的

在一些较旧的UNIX平台上,它可能无法确定 当前操作系统信息,在这种情况下,它将恢复显示 操作系统PHP是建立在。只有当您的uname()库 呼叫不存在或不工作


您可以使用
\u GLOBALS['MACHINENAME']
直接从
GLOBALS
数组中获取以下信息:

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