2010-11-05 23 views
8

Ziyaretçinin işletim sistemi işletim sistemi PHP'yi kullanan bir Windows, Mac veya Linux olduğunu anlamaya çalışıyorum (versiyona ihtiyacım yok, dağıtım bilgisi vb.). Orada birkaç yöntem var, ancak bu basit gereksinim için biraz karmaşık görünüyorlar.En Kolay Yolu PHP ile Algılama?

Bu tür bilgileri sağlayabilecek, ancak hala güvenilir olan herhangi bir basit yol var mı?

Şimdiden teşekkürler.

+1

http://stackoverflow.com/questions/228256/operating-system-from-user-agent-http-header – user187291

+0

[PHP ile işletim sistemi bilgilerini edinin] olası bir kopyası (http://stackoverflow.com/questions/18070154/get-operating-system-info-with-php) –

cevap

6

Kolay bir çözüm için here'a bakın. Kullanıcı aracı başlığı bazı işletim sistemi bilgilerini gösterebilir, ancak buna güvenmem.

kullanımı durumda İçin i müşterinin OS sunucu bilgilendirmek için istemci tarafında gelen javascript kullanan bir ajax arama yapardı. Ve su geçirmez yapın.

İşte bir örnek.

JavaScript (istemci tarafı, tarayıcı algılama + ajax arama):

window.addEvent('domready', function() { 
    if (BrowserDetect) { 
    var q_data = 'ajax=true&browser=' + BrowserDetect.browser + '&version=' + BrowserDetect.version + '&os=' + BrowserDetect.OS; 
    var query = 'record_browser.php' 
    var req = new Request.JSON({url: query, onComplete: setSelectWithJSON, data: q_data}).post(); 
    } 
}); 

PHP (sunucu tarafı):

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $session = session_id(); 
    $user_id = isset($user_id) ? $user_id : 0; 
    $browser = isset($_POST['browser']) ? $_POST['browser'] : ''; 
    $version = isset($_POST['version']) ? $_POST['version'] : ''; 
    $os = isset($_POST['os']) ? $_POST['os'] : ''; 

    // now do here whatever you like with this information 
} 
+0

Güvenilir görünüyor. Ancak, algılamanın yalnızca sayfa yüklendikten sonra gerçekleştiğini mi varsayıyorum? – user435216

+0

Sayfa yüklemesi olmadan, kullanıcı-aracı başlığının gösterdiğinden daha fazlasını alamazsınız. Peki, oturumu başlatırken kullanıcı işletim sistemini kaydedebilirsiniz (ilk sayfa yüklemesinde), ilk sayfada os algıladıktan sonra ikinci bir sayfaya yönlendirme yapmak için bir geçici çözüm olabilir. – Thariama

+0

Bağlantı bozuk –

22
<?php 

$agent = $_SERVER['HTTP_USER_AGENT']; 

if(preg_match('/Linux/',$agent)) $os = 'Linux'; 
elseif(preg_match('/Win/',$agent)) $os = 'Windows'; 
elseif(preg_match('/Mac/',$agent)) $os = 'Mac'; 
else $os = 'UnKnown'; 


echo $os; 

?> 
+0

Bana iyi görünüyor! –

İlgili konular