Browserumleitungen & Erkennung mit PHP

Zugegeben.. Browserumleitungen, Erkennungen oder browserspezifischer Code sind heute Dank Javascript Frameworks wie jQuery und Co. oder der “Conditional comment syntax” in CSS eher selten geworden können aber durchaus noch Sinn machen.

Ich nehme mir einfach mal eine Webseite als Beispiel welche Software für Mac sowie aber auch für Windows Systeme anbietet. Klingt komisch gibt es aber bei Opensource Software doch relativ oft.

Das Problem

Ich möchte Besuchern mit einem Mac System gleich die richtige Software zum Download anbieten ohne das dieser mühsam zwischen Windows, Linux, Solaris oder Mac auswählen muss. Ausserdem möchte ich natürlich die Webseite auch gleich in der richtigen Sprache anzeigen und falls der Zugriff von einem mobilen Gerät erfolgt möchte ich eine entsprechende Meldung ausgeben, oder gleich auf die für mobile Geräte optimierte Seite umleiten.

Die Lösung

die Lösung liegt in den PHP Server Variablen

$_SERVER['HTTP_USER_AGENT']

und

$_SERVER['HTTP_ACCEPT_LANGUAGE']

welche die Sprache des Browsers beinhaltet.

Die Variable

$_SERVER['HTTP_USER_AGENT']

beinhaltet den Browsernamen, die Version, Codenamen, Revisionsnummer und das Betriebssystem während die Variable

$_SERVER['HTTP_ACCEPT_LANGUAGE']

nur die Sprache beinhaltet.

Um den Browser, OS oder Mobile Geräte zu erkennen müssen diese Variablen auseinandergenommen werde, was mühsam ist, oder einfach nach bestimmten „Schlüsselworten“ durchsucht werden.

Und genau dafür habe ich eine kleine PHP Klasse gebastelt welche folgende Sachen auslesen kann:

  1. Browser
  2. Betriebssystem
  3. Sprache
  4. Mobile (ja/nein)

Hier kannst du die Klasse runterladen.

Anwendung

  1. Die Klasse zu deinen anderen Klassen oder Funktionen kopieren oder neue Datei erstellen und die mittels PHP includen.
  2. Klasse Aufrufen:
1
2
$browserinfo = new rbc_BrowserInfo();
$browserinfo -> getBrowserInfo();

Nun kannst du zb. solche Abfragen erstellen:

Download einer Datei je nach Beriebssystem:

1
2
3
4
5
if ($browserinfo->os=="windows" {
	echo '<a href="#">Download for Windows</a>';
} elseif ($browserinfo->os=="mac") {
	echo '<a href="#">Download for Mac</a>';
}

Umleitung auf eine Webseite welche für mobile Geräte optimiert ist:

1
2
3
4
if ($browserinfo->mobile==1) {
	header("Location: http://mobile.example.com/"); /* Browser auf Mobileseite umleiten */
	exit;
}

Achtung: PHP Umleitungen müssen zuoberst auf der Seite gemacht werden bevor auch nur ein Zeichen ausgegeben wird. Ach ja.. Leerzeichen sind auch Zeichen :)

Umleitung auf eine Webseite falls die Sprache nicht Englisch ist:

1
2
3
4
if ($browserinfo->lang!="en") {
	header("Location: http://www.example.com/de/"); /* Browser umleiten falls Sprache nicht Englisch ist */
	exit;
}

Eine Meldung für Internet Explorer Benutzer anzeigen:

1
2
3
if ($browserinfo->browser=="ie") {
	echo '<div class="error">Dude..Get Firefox</div>';
}

Das ganze lässt sich natürlich auch kombinieren:

1
2
3
if ($browserinfo->browser=="ie" && $browserinfo->os=="windows") {
	echo '<div class="error">Get a Mac</div>';
}

Bei Fragen, Ergänzungen etc. einfach einen Kommentar hinterlassen.

Kommentar schreiben

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

1 Kommentar

This article was helpful in a paper I am writing for my thesis.

Thanks

Bernice Franklin

UGG Boots
UGG Purses
Classic Tall Chestnut