5

スクリプトが Apache で実行されるとき$_SERVER['SERVER_NAME']、エラー報告の電子メール メッセージに値を挿入します。

ただし、Web スクリプトが で「worker」ジョブを fork すると、そこでは空nohup php ...$_SERVER['SERVER_NAME']見えます。したがって、エラーが発生した場合、ホスト名なしで報告されます。

Unixhostnameコマンドを呼び出さずに、PHP を使用してホスト名を確実に取得できますか?

4

3 に答える 3

14

php_uname("n")

(PHP 4 >= 4.0.2、PHP 5)
php_uname — PHP が実行されているオペレーティング システムに関する情報を返す

php_uname() は、PHP が実行されているオペレーティング システムの説明を返します。これは、phpinfo() 出力の一番上に表示される文字列と同じです。オペレーティング システムのみの名前については、PHP_OS 定数の使用を検討してください。ただし、この定数には、PHP が構築されたオペレーティング システムが含まれることに注意してください。

一部の古い UNIX プラットフォームでは、現在の OS 情報を判別できない場合があります。その場合、PHP が構築された OS の表示に戻ります。これは、una​​me() ライブラリ呼び出しが存在しないか機能しない場合にのみ発生します。

于 2008-10-17T12:11:26.710 に答える
1

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')); 
于 2013-07-17T20:54:52.693 に答える
0

を使用_GLOBALS['MACHINENAME']して、 から直接情報を取得できますglobals array

于 2008-10-19T13:17:36.560 に答える