Što se detekcije browsera tiče u samom php-u postoji nekoliko ugrađenih metoda:
$SERVER['HTTPUSER_AGENT']
varijabla na serveru u kojoj je spremljen podatak o korisnikovom browseru i izgleda otprilike ovako (barem za moj browser):
echo $_SERVER['HTTP_USER_AGENT'];
//Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0"
Sa ovom metodom je potrebno različitim metodama probati "uhvatiti" o kojem je browseru riječ. Npr.
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox')){
$browser = 'Mozilla Firefox (Gecko)';
}elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox/10.0')){
$browser = 'Mozilla Firefox - verzija 10.0 (Gecko)';
}elseif(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')){
//nadajmo se da nije :D
$browser = 'Internet Explorer (MSIE/Compatible)';
}else{
$browser = 'Nemam pojma';
}
echo $browser;
Naravno trebalo bi navesti sve browsere koji je potrebno ispitati :D. Možda napisati svoju klasu za sve browsere :D
get_browser()
(http://www.php.net/manual/en/function.get-browser.php) pokušava skužiti browser uz pomoć browser.ini datoteke u kojoj su zapisani svi poznati browseri (barem sada). Datoteka se redovito ažurira (http://browsers.garykeith.com/downloads.asp) a za php je potrebno preuzeti ovu datoteku (http://browsers.garykeith.com/stream.asp?PHP_BrowsCapINI). Međutim da bi ova metoda ispravno radila potebno je dodatno podesiti php.ini datoteku na sljedeći način:
browscap = "/putanja/do/browsecap.ini"
ovu liniju potrebno je dodati negdje u vašoj php.ini datoteci sa ispravnom putanjom do "browsecap.ini" datoteke. S obzirom da neki djeljeni serveri nemaju mogućnost za to upoznajmo 3. metodu :D
na kraju
postoji mogućnost ne izmišljanja tople vode i korištenja već gotovih klasa. Jedna zanimljiva koju sam testirao i koja je zapravo zamjena za "browsecap.ini" metodu: https://github.com/GaretJax/phpbrowscap
$browser_cap = new Browscap('E:/xampp/htdocs');
$current_browser = $browser_cap ->getBrowser();
echo '<pre>'; // some formatting issues ;)
print_r($current_browser);
echo '</pre>';
Ovo će vam dati iste informacije kao i 2. metoda samo bez muke sa i oko browsecap.ini datotekom i postavkama u php.ini datoteci :D