operating-system - 如何獲得運行PHP的操作系統?




(9)

為了構建一個unix / dos特定的腳本,我需要知道我是哪種操作系統。

我如何獲得這些信息?
phpinfo(); 告訴我更多,不清楚我是否在unix上運行。


Answers

#!/usr/bin/env php
<?php
$platform = DIRECTORY_SEPARATOR === '\\'
    ? 'Windows'
    : 'Unix/Linux';

我知道這不是非常精細,但它可能足以在Win和* nix系統之間進行簡單的識別。 因人而異


$user_agent     =   $_SERVER['HTTP_USER_AGENT'];
function getOS() { 

    global $user_agent;

    $os_platform    =   "Unknown OS Platform";

    $os_array       =   array(
                            '/windows nt 6.2/i'     =>  'Windows 8',
                            '/windows nt 6.1/i'     =>  'Windows 7',
                            '/windows nt 6.0/i'     =>  'Windows Vista',
                            '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
                            '/windows nt 5.1/i'     =>  'Windows XP',
                            '/windows xp/i'         =>  'Windows XP',
                            '/windows nt 5.0/i'     =>  'Windows 2000',
                            '/windows me/i'         =>  'Windows ME',
                            '/win98/i'              =>  'Windows 98',
                            '/win95/i'              =>  'Windows 95',
                            '/win16/i'              =>  'Windows 3.11',
                            '/macintosh|mac os x/i' =>  'Mac OS X',
                            '/mac_powerpc/i'        =>  'Mac OS 9',
                            '/linux/i'              =>  'Linux',
                            '/ubuntu/i'             =>  'Ubuntu',
                            '/iphone/i'             =>  'iPhone',
                            '/ipod/i'               =>  'iPod',
                            '/ipad/i'               =>  'iPad',
                            '/android/i'            =>  'Android',
                            '/blackberry/i'         =>  'BlackBerry',
                            '/webos/i'              =>  'Mobile'
                        );

    foreach ($os_array as $regex => $value) { 

        if (preg_match($regex, $user_agent)) {
            $os_platform    =   $value;
        }

    }   

    return $os_platform;

}

$user_os  =   getOS();


$device_details =   "<strong>Operating System: </strong>".$user_os."";

print_r($device_details);

檢查運行PHP的平台有兩種不同的方法。

  1. 使用作為const的PHP_OS並指向PHP構建在其中的“操作系統名稱”。
  2. 使用PHP內置函數php_uname() ,它將告訴您腳本在其上運行的平台(操作系統名稱,主機名,版本信息,版本名稱,機器類型)的更多信息。



PHP有許多預定義的常量 ,通常很有用。

在這裡, PHP_OS是您正在尋找的。


例如,在我當前的機器上,這段代碼:

var_dump(PHP_OS);

給:

string 'Linux' (length=5)


你有一些例子和比較php_uname函數可以在php_uname手冊頁上找到你; 例如(引用)

<?php
echo php_uname();
echo PHP_OS;

/* Some possible outputs:
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_OS常量,但請記住,此常量將包含PHP 構建的操作系統。


PHP 7.2.0開始,我們有一個新的預定義常量來獲取操作系統系列,即PHP_OS_FAMILY 。 它返回一個字符串 'Windows','BSD','OSX','Solaris','Linux'或'Unknown'。


請記住, PHP_OS實際上包含構建PHP的平台。 這可能與部署它的平台不同。 因此php_uname('s')更可靠。


import os
if os.path.isfile(filename):
    print "file exists"
else:
    "Your code here"

這裡的代碼使用(touch)命令

這將檢查文件是否存在,如果不存在,那麼它將創建它。





php operating-system