search check home clock-o tag tags chevron-left chevron-right chevron-up chevron-down twitter facebook github rss comment comments terminal code

[PHP] Jak wykryć czy ktoś ogląda Twoją stronę za pomocą komórki?

[PHP] Jak wykryć czy ktoś ogląda Twoją stronę za pomocą komórki?

Tematem tego artykułu jest wykrywanie urządzeń mobilnych przez mechanizm na którym oparta jest strona WWW.
Pewnie nie raz się zastanawiałeś/aś nad tym w jaki sposób wykryć czy użytkownik, który odwiedził Twoją stronę korzystał na przykład z komórki? Można to sprawdzić za pomocą języka PHP i dzięki temu, można zmienić strukturę strony odpowiednio dla każdego typu urządzenia mobilnego. Lecz trzeba pamiętać i kilku rzeczach.

  1. Ta technika polega na zawartości ukrytych w UserAgent. Przez co, ta technika może nie działać na przeglądarkach podszywających się pod inne, na przykład część przeglądarek internetowych zainstalowanych w urządzeniach mobilnych udaje Internet Explorera.
  2. Operatorzy komórkowi mogą zmienić zawartość UserAgenta podczas dostosowywania urządzenia do ich sieci. Czasami też operatorzy mogą zmienić zawartość UserAgenta podczas przeglądania strony WWW poprzez ich sieć internetową.
  3. Zawartość UserAgenta może się zmieniać w czasie. Dlatego też, należy monitorować kod pod kątem obsługi najbardziej pożądanych urządzeń mobilnych, których listę zdefiniuje administrator strony WWW.

Do tego celu będziemy wykorzystywać klasę PHP stworzoną przez Anthonego Handa o nazwie uagent_info.

Przykład wykorzystania tej klasy

Na początek, należy stworzyć obiekt tej klasy, a następnie wywoływać do niej funkcje. Detektor urządzeń mobilnych zwraca wartości 1 lub 0 w zależności od tego czy wykryje dany typ urządzenia mobilnego.
Oto przykład:

//Tworzymy obiekt klasy uagent_info
$obiekt = new uagent_info();
 
//Spróbujmy wykryć iPhone'a
//Poniższa metoda (funkcja) zwróci 1 lub 0
$iPhone = $obiekt->DetectIphone();
 
//Zrób coś
print("
 
Masz iPhone'a: ".$iPhone."
 
");
 
//Możesz też wypisać do okna przeglądarki zawartość UserAgenta
$agent = $obiekt->Get_Uagent();
print("
 
Zawartość UserAgenta to:  ".$agent."
 
");
 
//Poniższa metoda wykryje czy używasz iPhone'a lub iPod Touch
//$obiekt->DetectIphoneOrIpod());
 
//Natomiast ta wykryje czy używasz Androida lub przeglądarki typu WebKit
//$obiekt->DetectAndroidWebKit();
 
//Z kolei ta metoda wykryje czy komórka bazuje na Symbianie. Wykryje ona wszystkie wersje Symbiana począwszy od S60
//$obiekt->DetectSymbianOS();
 
//Wykrywanie Windows Mobile
//$obiekt->DetectWindowsMobile();
 
//Wykrywanie konsol do gier
//$obiekt->DetectGameConsole();
 
//Wykrywanie komórek ogółem
//$obiekt->DetectMobileQuick();

Mam nadzieję, że ten przegląd możliwości klasy uagent_info pozwoli Tobie na tworzenie dedykowanych wersji Twojej strony WWW dla urządzeń mobilnych.

Źródła:

  • Całkiem niedawno zastanawiałem się w jaki sposób takie coś rozpoznać ;] Myślę, że kiedyś to wykorzystam.

  • Dla osob posiadajacych google analitys – informacje o ilosci userow mobilnych, rodzajach telefonow i sieciach z jakich sie laczyli sa dostepne w GA