Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzenie przeglądarki
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Da się php sprawdzić konkretną wersję IE używając coś innego niż poniższe?
$_SERVER['HTTP_USER_AGENT'] wywala za dużo informacji. Ja potrzebuję tylko czy jest to IE 5,6,7 czy 8 i najlepiej aby tylko cyfrę funkcja zwracała.

Wszystko byłoby ok gdyby to:
  1. $browser = get_browser(null, true);
  2. echo $browser['version'];
nie zwracało mi błędu:
Kod
Warning: get_browser() [function.get-browser]: browscap ini directive not set in /mnt/home/xxxx/index.php on line 78

Wyczytałem w necie że: "unfortunately with this function there is no way to get it to work without editing php.ini or httpd.conf. you will need to ask your host to uncomment the browscap line and put the file somewhere on the server. this directive is only changable in php.ini or httpd.conf, not thru ini_set."
Ja oczywiście jako zwykły użytkownik serwera nie mam dostępu do php.ini ani httpd.conf.

JavaScript odpada niestety.
Jakieś inne pomysły?

EDIT:
Wykombinowałem coś takiego:
  1. if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false ||
  2. strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 5') !== false ||
  3. strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 4') !== false ||
  4. strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 3') !== false) {
  5. //opcje dla IE < 7
  6. }
Właściwie to działa ale coś nie jestem przekonany do takiego rozwiązania. Może ktoś ma jeszcze inny pomysł?
Daimos
korzystaj z wyrażeń regularnych w takich wypadkach
preg_replace preg_match
erix
A chyba zapomnieliście o tym, że w manualu, pod opisem właściwych funkcji są też i komentarze, w których często zdarzają się wartościowe perełki:

http://pl.php.net/manual/en/function.get-browser.php#70641
sadistic_son
Cytat(Daimos @ 19.01.2011, 09:45:27 ) *
korzystaj z wyrażeń regularnych w takich wypadkach
preg_replace preg_match
Czemu nie, ale rozwiązanie będzie identyczne jak moje.


Cytat(erix @ 19.01.2011, 09:49:00 ) *
To rzeczywiście byłoby ciekawe rozwiązanie, ale niestety:
Kod
Warning: parse_ini_file() has been disabled for security reasons in /mnt/home/xxxx on line 19
A co za tym idzie dalej:
Kod
Warning: Invalid argument supplied for foreach() in /mnt/home/xxx on line 20
W tym przypadku linijka 20 to:
  1. foreach($brows as $k=>$t){
Argument jest niepoprawny bo jest definiowany linijkę wyżej czyli 19:
  1. $brows=parse_ini_file("php_browscap.ini",true);
.
Tak więc niestetyerix ten komentarz nie pomaga sad.gif
erix
Cytat
Warning: parse_ini_file() has been disabled for security reasons in /mnt/home/xxxx on line 19

ŻE CO?!

Weź Ty zmień serwer, bo to jest chyba jakaś prowizorka...

Cytat
Tak więc niestetyerix ten komentarz nie pomaga

Nie wyciągnąłeś wniosków z tego, na co Ci zwróciłem uwagę: http://pl.php.net/manual/en/function.parse...-file.php#98438

Myślenie nie boli.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.