[英]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.