Jak zdobyć agenta użytkownika w PHP

78

Używam tego kodu JS, aby wiedzieć, do jakiej przeglądarki używa użytkownik.

<script>
  document.write(navigator.appName);
</script>

I chcę uzyskać ten navigator.appName do kodu php, aby używać go w ten sposób:

if ($appName == "Internet Explorer") {
  // blabla
}

Jak mogę to zrobić?

Olga Budnik
źródło

Odpowiedzi:

209

$_SERVER['HTTP_USER_AGENT']Zamiast tego użyj natywnej zmiennej PHP .

noli
źródło
11
Uwaga, nie można tego ustawić!
Thomas Decaux
10
W PHP7 + możesz napisać, $_SERVER['HTTP_USER_AGENT']??nullaby zwracał wartość null zamiast zgłaszać błąd, gdy nie jest zdefiniowany
Brian Leishman
Lub zrób to, jeśli chcesz później tylko manipulować łańcuchami i nie chcesz przejmować się wartością zerową lub nieustawioną: $ ua = $ _SERVER ['HTTP_USER_AGENT']. '';
user2078023
22
Lub po prostu sprawdź isset()… Czysty i czytelny kod powinien zawsze mieć wysoki priorytet.
StanE
4

Możesz także użyć natywnej funkcji php get_browser ()

WAŻNA UWAGA: Powinieneś mieć plik browsercap.ini.

Aurovrata
źródło
3
Wymaga to, aby mieć up-to-date Browscap.ini plików
opcje dopuszczania wartości null
1
działa i istnieje wiele zasobów internetowych, z których można pobrać jeden dla swojej witryny, np. browsercap.org
Aurovrata
1
return null or false
Fernando Torres
2
upewnij się, że masz plik
browsercap.ini
2

Możesz użyć łącza do metody jQuery ajax, jeśli chcesz przekazywać dane z klienta do serwera. W takim przypadku możesz użyć $_SERVER['HTTP_USER_AGENT']zmiennej, aby znaleźć agenta użytkownika przeglądarki.

Artur86
źródło
1
czy to działa $_SERVER['USER_AGENT']? Powinien być $_SERVER['HTTP_USER_AGENT']???
jogesh_pi,