簡體   English   中英

是否有PHP函數或變量給出本地主機名?

[英]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_uname( “N”)

(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();

對於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')); 

您可以使用_GLOBALS['MACHINENAME']直接從globals array獲取信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM