Folow me on Pinterest
Prvi ste put ovdje? Pročitajte faq i registrirajte se.
x
  • Registracija
Dobrodošli, ovdje možete postavljati pitanja vezana za problematiku programiranja. Da bi postavili pitanje nije potrebna registracija :)

Pitanja

+8 glasova, 1 odgovor
+7 glasova, 1 odgovor
+6 glasova
+8 glasova, 1 odgovor
+7 glasova, 1 odgovor

139 pitanja

167 odgovora

146 komentara

86 korisnika

Zadnje značke

Redovit
triolatice...
Starosjedilac
triolatice...
Dobar odgovor
dev_q...
Dobar odgovor
purifier...
Glasač
Ivana Dobrot...

Detekcija browser-a - php ili javascript?

+6 glasova

Koja je najbolja metoda za detekciju browsera?

Nisam siguran da li bi to trebalo javascriptom, php-om ili nečim trećim?

Molim pomoć.

Upit Velj 2, 2012 anonimno  
Ažurirano Velj 2, 2012
   

Odgovor 1

+3 glasova
 
Najbolji odgovor

Š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

Odgovoreno Velj 2, 2012 dev_q (902)  
Ažurirano Velj 3, 2012 dev_q

Molimo prijavite se ili registrirajte da bi mogli odgovoriti na pitanje