php自身有許多與運行作業系統有關的系統預定義變數,通過這些預定義變數可以很輕鬆的判斷當前的系統是 windows 還是 Linux 還是 unix。
下面就一一列出這些比較實用的預定義變數並稍作分析。
php_uname()
PHP_OS
DIRECTORY_SEPARATOR
PATH_SEPARATORphp_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');
PHP_OS
php內建的一個內建常量,返回的是伺服器端的作業系統標示,值為(WINNT,WIN32等)使用樣本:
echo strtoupper(substr(PHP_OS,0,3))==='WIN'?'windows 伺服器':'不是 widnows 伺服器';
DIRECTORY_SEPARATOR php內建的一個內建常量,用來顯示系統分隔字元的命令,不需要任何定義與包含即可直接使用。
眾所周知,在windows下路徑分隔字元是\(當然/在部分系統上也是可以正常啟動並執行),在linux上路徑的分隔字元是/,DIRECTORY_SEPARATOR 這個額常量存在的意義就是會根據不同的作業系統來顯示不同的分隔字元。
使用 DIRECTORY_SEPARATOR 判斷作業系統類型的樣本如下:
echo DIRECTORY_SEPARATOR=='\\'?'windows 伺服器':'不是 widnows 伺服器';
PATH_SEPARATOR 是一個常量,在linux系統中是一個" : "號,Windows上是一個";"號。
使用 PATH_SEPARATOR 判斷作業系統類型的樣本如下:
echo PATH_SEPARATOR==';'?'windows 伺服器':'不是 widnows 伺服器';