Jak sprawdzić czy to mobilna przeglądarka, czyli browscap w PHP

php-logoPółtora roku temu przedstawiłem Wam skomplikowany sposób sprawdzenia platformy/mobilnej przeglądarki za pomocą WURFL (Wireless Universal Resource File) w Zend Framework. Rozwiązanie to wymagało wielu zależności i nie było proste w obsłudze.

Tym razem coś o wiele prostszego. Wykorzystamy do tego wbudowaną w PHP funkcję get_browser(). Jedyne co potrzebujemy z zewnątrz jest to biblioteka browscap, która „nauczy” PHP rozpoznawania platform.
Oto przepis:

  1. Ściągamy browscap.ini na nasz serwer i zapisujemy jako /etc/php_browscap.ini.
  2. Edytujemy php.ini dodając/od komentując:
    [source]
    [browscap]
    browscap = /etc/php_browscap.ini
    [/source]
  3. Teraz w PHP możemy w prosty sposób rozpoznać platformę, na której otworzona jest nasza strona:
    [source language=”php”]
    $browser = get_browser($request[‚http_user_agent’], true);
    $platform = isset($browser[‚platform’]) ? $browser[‚platform’] : null;

    switch($platform) {
    case ‚iOS’:
    $url = ‚http://www.matipl.pl/site-for-ios’;
    break;
    case ‚Android’:
    $url = ‚http://www.matipl.pl/site-for-android’;
    break;
    case ‚SymbianOS’:
    $url = ‚http://www.matipl.pl/site-for-symbian’;
    break;
    case ‚BlackBerry OS’:
    $url = ‚http://www.matipl.pl/site-for-bb’;
    break;
    default:
    $url = ‚http://www.matipl.pl/’;
    break;
    }
    [/source]

Prawda, że prosto? Co jakiś czas możemy zaktualizować browscap, w którym co jakiś czas pojawia się „obsługa” nowych urządzeń.

PS: W minionym tygodniu ekipa PHP znów połatała błędy. Polecam update do PHP 5.4.8 i PHP 5.3.18.