php - विंडोज के विभिन्न प्रकार




PHP स्क्रिप्ट-पता लगाएं कि लिनक्स या विंडोज के तहत चल रहा है या नहीं? (8)

आप जांच सकते हैं कि PHP> 5.3.0 ( मैन्युअल ) में निरंतर मौजूद है या नहीं

if (defined('PHP_WINDOWS_VERSION_BUILD')) {
    // is Windows
}

पहले, इस विधि का प्रयोग सिम्फनी में किया गया था। अब वे एक अलग विधि का उपयोग करते हैं:

if ('\\' === DIRECTORY_SEPARATOR) {
    // is Windows
}

मेरे पास एक PHP स्क्रिप्ट है जिसे विंडोज सिस्टम या लिनक्स सिस्टम पर रखा जा सकता है। मुझे किसी भी मामले में अलग-अलग कमांड चलाने की ज़रूरत है।

मैं कैसे पता लगा सकता हूं कि मैं किस पर्यावरण में हूं? (अधिमानतः चालाक सिस्टम हैक की बजाय कुछ php)

क्षःमा क्षःमा!! स्क्रिप्ट कमांड लाइन से चल रहा है !!!!


आप जांच सकते हैं कि निर्देशिका सेपरेटर / (यूनिक्स / लिनक्स / मैक के लिए) या \ windows पर है। निरंतर नाम DIRECTORY_SEPARATOR है

if (DIRECTORY_SEPARATOR == '/') {
    // unix, linux, mac
}

if (DIRECTORY_SEPARATOR == '\\') {
    // windows
}

ध्यान दें कि PHP_OS ओएस को रिपोर्ट करता है कि PHP बनाया गया था , जो आवश्यक रूप से वही ओएस नहीं है जो वर्तमान में चल रहा है।

यदि आप PHP> = 5.3 पर हैं और आपको यह जानने की आवश्यकता है कि आप विंडोज़ पर चल रहे हैं या नहीं- तो विंडोज़ तब परीक्षण करें कि विंडोज-विशिष्ट स्थिरांक में से एक परिभाषित किया गया है या नहीं, उदाहरण के लिए:

$windows = defined('PHP_WINDOWS_VERSION_MAJOR');

यह PHP 4.3+ में काम करना चाहिए:

if (strtolower(PHP_SHLIB_SUFFIX) === 'dll')
{
    // Windows
}
else
{
    // Linux/UNIX/OS X
}

पूर्वनिर्धारित कॉन्स्टेंट्स के अनुसार : उपयोगकर्ता योगदान नोट्स वोल्कर और rdcapasso समाधान, आप बस इस तरह सहायक सहायक बना सकते हैं:

<?php

class System {

    const OS_UNKNOWN = 1;
    const OS_WIN = 2;
    const OS_LINUX = 3;
    const OS_OSX = 4;

    /**
     * @return int
     */
    static public function getOS() {
        switch (true) {
            case stristr(PHP_OS, 'DAR'): return self::OS_OSX;
            case stristr(PHP_OS, 'WIN'): return self::OS_WIN;
            case stristr(PHP_OS, 'LINUX'): return self::OS_LINUX;
            default : return self::OS_UNKNOWN;
        }
    }

}

उपयोग:

if(System::getOS() == System::OS_WIN) {
  // do something only on Windows platform
}

PHP_OS निरंतर डॉक्स के मान की जांच करें।

यह आपको विंडोज़ पर WIN32 , WINNT या Windows जैसे विभिन्न मान देगा।

साथ ही देखें: संभावित मान: PHP_OS और php_unameDocs :

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'This is a server using Windows!';
} else {
    echo 'This is a server not using Windows!';
}

कोर पूर्वनिर्धारित स्थिरांक: http://us3.php.net/manual/en/reserved.constants.php जिसमें PHP_OS (string) निरंतर है।

या यदि आप ग्राहक के ओएस का पता लगाना चाहते हैं:

<?php
    echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

    $browser = get_browser(null, true);
    print_r($browser);
?>

http://us3.php.net/manual/en/function.get-browser.php

आपके संपादन के अनुसार आप कमांड लाइन से इस गणराज्य PHP सर्वर नाम का उल्लेख कर सकते हैं

आप उपयोग कर सकते हैं

string php_uname ([ string $mode = "a" ] )

इसलिए

php_uname("s")

'एस': ऑपरेटिंग सिस्टम का नाम। जैसे। FreeBSD।

आप के लिए चाल करेंगे, यहां देखें http://php.net/manual/en/function.php-uname.php


function isWin(){
 if (strtolower(substr(PHP_OS, 0, 3)) === 'win' || PHP_SHLIB_SUFFIX == 'dll' || PATH_SEPARATOR == ';') {
    return true;
 } else {
    return false;
 }
}




detect