引子:
今天遇到一个问题,当执行文件操作是,不同系统之间的命令是不同的 , 所以需要判断当前系统。
$is_win = strtoupper(substr(PHP_OS,0,3))==='WIN'?1:0;
附带另外几个php 内置判断方法
php_uname()
PHP_OS
DIRECTORY_SEPARATOR
PATH_SEPARATOR
4.1 php_uname()这个函数的意义在于返回当前PHP所运行的系统的信息,下面对这个函数 详细说明一下:
- /**
- * 功能:返回当前PHP所运行的系统的信息
- * @param string $mode
- * 'a': 返回所有信息
- * 's': 操作系统的名称,如FreeBSD
- * 'n': 主机的名称,如cnscn.org
- * 'r': 版本名,如5.1.2-RELEASE
- * 'v': 操作系统的版本号
- * 'm': 核心类型,如i386
- * @return string
- */
- string php_uname([string $mode]);
- echo php_uname();
- echo php_uname('s');
4.2 PHP_OS php自带的一个内置常量,返回的是服务器端的操作系统标示,值为(WINNT,WIN32等)
- echo strtoupper(substr(PHP_OS,0,3))==='WIN'?'windows 服务器':'不是 widnows 服务器';
DIRECTORY_SEPARATOR php自带的一个内置常量,用来显示系统分隔符的命令,不需要任何定义与包含即可直接使用。众所周知,在windows下路径分隔符是\(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是/,DIRECTORY_SEPARATOR 这个额常量存在的意义就是会根据不同的操作系统来显示不同的分隔符。
使用 DIRECTORY_SEPARATOR 判断操作系统类型的示例如下:
- '\\''windows 服务器''不是 widnows 服务器'PATH_SEPARATOR 是一个常量,在linux系统中是一个" : "号,Windows上是一个";"号。
使用 PATH_SEPARATOR 判断操作系统类型的示例如下:
- ';''windows 服务器''不是 widnows 服务器'
- ';''windows 服务器''不是 widnows 服务器'