php如何判断当前的操作系统是linux还是windows

2015-08-22 13:29

php自身有许多与运行操作系统有关的系统预定义变量,通过这些预定义变量可以很轻松的判断当前的系统是 windows 还是 Linux 还是 unix。下面就一一列出这些比较实用的预定义变量并稍作分析。

php_uname()
PHP_OS
DIRECTORY_SEPARATOR
PATH_SEPARATOR

php_uname()这个函数的意义在于返回当前PHP所运行的系统的信息,下面对这个函数详细说明一下:

  1. /** 
  2. * 功能:返回当前PHP所运行的系统的信息 
  3. * @param string $mode  
  4. *       'a':  返回所有信息 
  5. *       's':  操作系统的名称,如FreeBSD 
  6. *       'n':  主机的名称,如cnscn.org 
  7. *       'r':  版本名,如5.1.2-RELEASE 
  8. *       'v':  操作系统的版本号 
  9. *       'm': 核心类型,如i386 
  10. * @return string 
  11. */ 
  12. string php_uname([string $mode]); 

使用示例:

  1. echo php_uname(); 
  2. echo php_uname('s'); 

PHP_OS php自带的一个内置常量,返回的是服务器端的操作系统标示,值为(WINNT,WIN32等)

使用示例:

  1. echo strtoupper(substr(PHP_OS,0,3))==='WIN'?'windows 服务器':'不是 widnows 服务器'

DIRECTORY_SEPARATOR php自带的一个内置常量,用来显示系统分隔符的命令,不需要任何定义与包含即可直接使用。众所周知,在windows下路径分隔符是(当然/在部分系 统上也是可以正常运行的),在linux上路径的分隔符是/,DIRECTORY_SEPARATOR 这个额常量存在的意义就是会根据不同的操作系统来显示不同的分隔符。

使用 DIRECTORY_SEPARATOR 判断操作系统类型的示例如下:

  1. echo DIRECTORY_SEPARATOR=='\\'?'windows 服务器':'不是 widnows 服务器'; 

PATH_SEPARATOR 是一个常量,在linux系统中是一个" : "号,Windows上是一个";"号。

使用 PATH_SEPARATOR 判断操作系统类型的示例如下:

  1. echo PATH_SEPARATOR==';'?'windows 服务器':'不是 widnows 服务器';
^