Contrary to the last note, PHP_OS does display the OS PHP runs on currently, whereas php_uname() displays the Operating system version via uname.
This has nothing to do with the system PHP was built on.
php_uname
(PHP 4 >= 4.0.2, PHP 5)
php_uname — PHP が稼動しているオペレーティングシステムに関する情報を返す
説明
string php_uname
([ string $mode = "a"
] )
php_uname() は、PHP が稼動しているオペレーティング システムに関する説明を返します。これは、phpinfo() の出力の先頭に出てくるものと同じです。 単に OS の名前を取得したい場合には PHP_OS 定数の利用を考えてください。ただし、 この定数が返すのは PHP が構築された OS の 情報であることに注意しましょう。
古い UNIX プラットフォームの中には現在の OS 情報を取得できないものもあります。 そんな場合は、PHP をビルドした OS の情報を表示します。 これがおこるのは、 uname() ライブラリコールが存在しないか機能していない場合のみです。
パラメータ
- mode
-
mode は、どのような情報を返すのかを一文字で指定します:
- 'a': デフォルトです。すべてのモードを "s n r v m" の順で返します。
- 's': オペレーティングシステム名。 例: FreeBSD
- 'n': ホスト名。 例: localhost.example.com
- 'r': リリース名。 例: 5.1.2-RELEASE
- 'v': バージョン情報。 オペレーティングシステムによって大きく変わります。
- 'm': マシン型。例: i386
返り値
説明を文字列で返します。
例
例1 php_uname() の例
<?php
echo php_uname();
echo PHP_OS;
/* 出力の例
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux
FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD
Windows NT XN1 5.1 build 2600
WINNT
*/
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
echo 'このサーバは Windows です!';
} else {
echo 'このサーバは Windows ではありません!';
}
?>
関連する 定義済みの定数 を使うほうが簡単なこともあります。例えばこのようになります。
例2 OS 関連の定数の例
<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX; // so
echo PATH_SEPARATOR; // :
// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX; // dll
echo PATH_SEPARATOR; // ;
?>
参考
- phpversion() - 現在の PHP バージョンを取得する
- php_sapi_name() - ウェブサーバと PHP の間のインターフェイスの型を返す
- phpinfo() - いろいろな PHP 情報を出力する
php_uname
simon at NOSPAM dot zadra dot org
19-Jan-2006 05:26
19-Jan-2006 05:26
tac at smokescreen dot org
14-Jan-2005 11:25
14-Jan-2005 11:25
In php 4.1.2, php_uname('n') returns a warning about an invalid parameter count. Change it to @php_uname to hide this warning.
