Sunucuda 10.4 ve aşağıda OS X sürüm algılamak

2 Cevap php

Kesinlikle doğru OS sürümü algılama almak zor gibi dayanarak this görünüyor. Ancak, benim ürünü ile mümkün compat konularda OS X Tiger ve aşağıda kullanıcıları uyarıyor yarım terbiyeli bir şey arıyorum.

The heuristic I can think of is first detecting whether the OS is a Mac (relatively simple) and then matching the user agent with the regex 10[/._][0-4] to detect Tiger and below. I don't really care about cases where the user agent is modified - I want a fair strike rate detecting OS X versions, not a 100% solution.

Başka bir öneri / öneriler?

Ayrıca, bana farklı OS sürümü + tarayıcı sürümü kombinasyonları için bilinen kullanıcı aracısı dizeleri oluşturarak bu test etmesine yardımcı bir araç işaret için bonus puan.

Teşekkürler!

2 Cevap

Hmm, ben de sana OS versiyonunu söyleyeyim eğer güncel bir php_browscap.ini ile get_browser () fonksiyonunu kullanarak, bu durumda% 100 emin bilge bir seçim olduğuna inanıyoruz.

EDIT: hala kendiniz bütün ayrıştırma işi yapmaya karar verirseniz browscap.ini dosyası da, yeterli kullanıcı aracısı dizeleri sağlar.

EDIT: there is also a PHP implementation Eğer php.ini dosyasını değiştirmek gerektirmez görünüyor.

EDIT: Beni burada sağlanan kullanıcı aracısı dizesi dayanarak ben iyi çalışır inanıyorum kodu:

if (preg_match('~Mac OS X (.*?);~', $_SERVER['HTTP_USER_AGENT'], $matches) > 0)
{
    $version = preg_replace('~[^0-9]+~', '.', trim($matches[1]));

    if (version_compare($version, '10.5', '>=') === true)
    {
    	// ok
    }

    else
    {
    	// not ok
    }
}

else
{
    // not Mac OS X
}

Başka herhangi bir öneri veya öneriler?

Evet, bunu yapmayın. Belki de ne duymak istiyorum ama haklısın, bu en iyi güvenilmez değil.

Doğal olarak tembel olmak, işin en az miktarda katılan çözümü tercih ederim. Böyle bir şey belirterek, bir sonraki indirme bağlantısına büyük kırmızı bir metin alanı bulunuyor:

Dikkat. Bu ürün yalnızca OS X 10.5 ya da üstü ile desteklenir. Önceki sürümleri kullanmaya teşebbüs etmeyin.

Sonra kullanıcı karar versin.

Onları daha da korumak istiyorsanız, bu kendi kutusunda üzerinde çalışıyor kez çalıştırılabilir program kendini kontrol emin olun. Ben OS X üzerinde uname, ya da güvenilir bir işletim sistemi sürümünü alabilirsiniz benzer bir araç toplamak. Bu noktada gözlük uymuyorsa, sadece benzer bir iletiyle çıkabilirsiniz:

Seni uyardım. Ama hayır, sen dinlemedin. Gidin ve yine beni indirmek zorunda, değil mi. Peki, şimdi ben hiç çalıştırmak için gitmiyorum, ve tüm bu değerli bant genişliğini boşa ettik. Aptal, aptal adam, şimdi gitmek.

Tabii ki, hata mesajı benim :-) daha ince ruhlu olabilir