(PHP 4 >= 4.0.2, PHP 5)
php_uname — 返回运行 PHP 的系统的有关信息
$mode
= "a"
] )
php_uname() 返回了运行 PHP 的操作系统的描述。
这和 phpinfo() 最顶端上输出的是同一个字符串。
如果仅仅要获取操作系统的名称。可以考虑使用常量 PHP_OS
,不过要注意该常量会包含 PHP 构建(built)时的操作系统名。
在一些旧的 UNIX 平台,它有可能无法检测到当前系统的信息,然后会还原显示成构建 PHP 时的系统信息。 这仅仅在你的 uname() 函数库不存在或无法运行时发生。
mode
mode
是单个字符,用于定义要返回什么信息:
返回描述字符串。
Example #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 'This is a server using Windows!';
} else {
echo 'This is a server not using Windows!';
}
?>
同样可以方便地使用一些相关的 PHP 预定义常量,例如:
Example #2 一些系统相关常量的例子
<?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; // ;
?>
Grzechooo+php at gmail dot com (2012-09-29 17:07:50)
Note that PHP won't tell you that it reverted to displaying platform it was built on.
Yzmir Ramirez (2011-08-24 10:00:24)
Note that php_uname('n') does not always equal $_SERVER['HOST_NAME']
The machine that you are running the script may server many different host names so don't use this when building urls.
simon at NOSPAM dot zadra dot org (2006-01-19 09:26:02)
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.
tac at smokescreen dot org (2005-01-14 15:25:45)
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.