Nem mindenki használja ugyanazt a böngészőt, és nem minden böngésző viselkedik egyformán. Ezért fontos, hogy olyan oldalakat tudjunk létrehozni, melyek mentesek a böngésző-specifikus tervezési hibáktól, megőrzik konzisztenciájukat az összes böngészőben vagy a látogatók képességeinek megfelelően legyenek specializálva.
A PHP tartalmazza a get_browser() függvényt, amely megpróbálja meghatározni a felhasználó böngészőjének képességeit, a böngésző információnak felkutatásával a browscap.ini fájlban. A keresés a User Agent alapján történik, amelyhez a függvény alapértelmezésben a HTTP User-Agent fejlécet használja. A keresés eredményét vagy objektumként, vagy tömbként adja vissza. Az eredmény többek között tartalmazza a böngésző típusát, fő- és alverzióját, JavaScript, frames és cookies képességeit.
Azonban mindezek működéséhez feltétlenül szükség van arra, hogy a php.ini fájlban szerepeljen a browscap konfigurációs beállítás, amelynek a browscap.ini fájl pontos helyére kell mutatnia a rendszerén.
[browscap] browscap = /usr/local/etc/php/extras/browscap.ini
A browscap.ini fájlt nem tartalmazza a PHP, de itt találhat egy naprakész php_browscap.ini fájlt.
Példa a használatra
A következő példával ellenőrizhető a get_browser() függvény helyes működése:
<?php echo $_SERVER['HTTP_USER_AGENT'] . "\n"; print_r (get_browser( null, true )); ?>
Az eredmény így néz ki:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0</pre> Array ( [browser_name_regex] => ^mozilla/5\.0 (.*windows nt 6\.1.*wow64.*rv:.*) gecko/.* firefox/8\..*$ [browser_name_pattern] => Mozilla/5.0 (*Windows NT 6.1*WOW64*rv:*) Gecko/* Firefox/8.* [parent] => Firefox 8.0 [platform] => Win7 [win32] => [win64] => 1 [browser] => Firefox [version] => 8.0 [majorver] => 8 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [javasscript] => 1 [javaapplets] => 1 [cssversion] => 3 [minorver] => 0 [alpha] => [beta] => [win16] => [backgroundsounds] => [vbscript] => [activexcontrols] => [isbanned] => [ismobiledevice] => [issyndicationreader] => [crawler] => [aolversion] => 0 )