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

发布于 2024-07-08 00:30:43 字数 283 浏览 11 评论 0原文

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

但是,如果 Web 脚本使用 nohup php ... 分叉“worker”作业,则 $_SERVER['SERVER_NAME'] 在那里显示为空。 因此,如果发生错误,报告时不会显示主机名。

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

When a script runs under Apache, I insert $_SERVER['SERVER_NAME'] value into an error reporting e-mail message.

However, if a Web script forks a "worker" job with nohup php ..., $_SERVER['SERVER_NAME'] appears to be empty there. Thus, if an error occurs, it's reported without a host name.

Can I reliably get the host name by means of PHP, without calling Unix hostname command?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终陌 2024-07-15 00:30:43

php_uname("n")

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

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

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

php_uname("n")

(PHP 4 >= 4.0.2, PHP 5)
php_uname — Returns information about the
operating system PHP is running on

php_uname() returns a description of the operating system PHP is
running on. This is the same string you see at the very top of the
phpinfo() output. For the name of just the operating system, consider
using the PHP_OS constant, but keep in mind this constant will contain
the operating system PHP was built on.

On some older UNIX platforms, it may not be able to determine the
current OS information in which case it will revert to displaying the
OS PHP was built on. This will only happen if your uname() library
call either doesn't exist or doesn't work.

夕色琉璃 2024-07-15 00:30:43

对于 PHP >= 5.3.0 使用此

$ hostname = gethostname();

对于PHP 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')); 

For PHP >= 5.3.0 use this:

$hostname = gethostname();

For PHP < 5.3.0 but >= 4.2.0 use this:

$hostname = php_uname('n');

For PHP < 4.2.0 you can try one of these:

$hostname = getenv('HOSTNAME'); 
$hostname = trim(`hostname`); 
$hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a')); 
陈年往事 2024-07-15 00:30:43

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

You can use _GLOBALS['MACHINENAME'] to obtain the information straight from the globals array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文