由于我构建了一个在 Linux、Windows 和 macOS 上运行的 PHP 应用程序,我刚刚发现使用 gethostname() 在不同的操作系统上的行为有所不同。Linux 将返回“主机名”,而 macOS 10.15 将返回“主机名.local”。尚未确定 Windows 的行为,但差异值得注意。就在几天前,我还想在 Linux 中获取 LAN 扩展名,但从未成功。我只能获取“主机名”。在 macOS 中,它就在那里,带有“主机名.local”。
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
gethostname — 获取主机名
此函数没有参数。
成功时返回包含主机名的字符串,否则返回 false
。
示例 #1 一个简单的 gethostname() 示例
<?php
echo gethostname(); // 可能输出例如:sandie
?>
由于我构建了一个在 Linux、Windows 和 macOS 上运行的 PHP 应用程序,我刚刚发现使用 gethostname() 在不同的操作系统上的行为有所不同。Linux 将返回“主机名”,而 macOS 10.15 将返回“主机名.local”。尚未确定 Windows 的行为,但差异值得注意。就在几天前,我还想在 Linux 中获取 LAN 扩展名,但从未成功。我只能获取“主机名”。在 macOS 中,它就在那里,带有“主机名.local”。
关于 Linux 与 macOS,这并非操作系统或 PHP 的差异。macOS 将主机名设置为 <短名称>.local。打开终端窗口并运行 `hostname` 进行检查。可以在 macOS 的共享首选项(如果使用 Ventura 13 或更高版本,则为设置)中设置本地主机名。