In diesem Tutorial erkläre ich ihnen, wie sie eine Browserweiche realisieren. Die Browserweichen wird mit PHP umgesetzt als eine PHP Function.
Diese PHP Function gestalten wir so schlau, dass man mit Angabe einer Art Variable unterscheiden kann, ob wir nur den Browsernamen ermitteln möchten oder die gesamte Seite umleiten. Im nachfolgenden Beispiel wird die gesamte Function erklärt. Nach dem die Function erklärt wurde, wird anschließend mit zwei unterschiedlichen Beispielen die Verwendung dieser Function erklärt.
Die Browserweiche unterstützt folgende Browser: Mozilla, Opera, Internet Explorer und den Google Chrome Browser.
Hier nun die PHP Function:
<?php
/*
* Created on 22.09.2009 by Nico Schubert
*/
/**
* @example browserweiche($art, $location);
* Beschreibung: Es muss $art übergeben werden.
* $art = 1 wird per haeder() eine Weiterleitung
* eingeleitet, wenn noch kein Haeder gesendet
* wurde. Bei $art = 2 wird nur der Browsername
* zurück gegeben. Die Variable $location muss
* in ein Array übergeben werden. In diesen
* Array, werden die Url gespeichert, wohin
* weitergeleitet werden soll.
*
* @return String wenn $art = 2 ist oder ein
* Fehler beim ausführen ensteht
*
* @author Nico Schubert->Webseite: https://www.php-space.info
*/
function browserweiche($art = '', $location = array()) {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$return = '';
/**
* Check $location, bei ungültige übergabe
* wird Fehlerstring zurück gegeben.
*/
if (count($location) !== 6) $art = 3;
switch ($art) {
case '1':
/**
* haeder() Weiterleitung
*/
if (eregi('opera', $user_agent)) {
if (headers_sent() == false AND $location['opera'] != '') {
header('Location:'.$location['opera']);
}
} elseif(eregi('firefox', $user_agent)) {
if (headers_sent() == false AND $location['firefox'] != '') {
header('Location:'.$location['firefox']);
}
} elseif(eregi('Mozilla', $user_agent)) {
if (headers_sent() == false AND $location['mozilla'] != '') {
header('Location:'.$location['mozilla']);
}
} elseif(eregi('msie', $user_agent)) {
if (headers_sent() == false AND $location['ie'] != '') {
header('Location:'.$location['ie']);
}
} elseif(eregi('Chrome', $user_agent)) {
if (headers_sent() == false AND $location['chrome'] != '') {
header('Location:'.$location['chrome']);
}
} else {
if (headers_sent() == false AND $location['default'] != '') {
header('Location:'.$location['default']);
}
}
break;
case '2':
/**
* Return des Browsernamen
*/
if (eregi('opera', $user_agent)) {
$return = 'Opera';
} elseif(eregi('firefox', $user_agent)) {
$return = 'Firefox';
} elseif(eregi('Mozilla', $user_agent)) {
$return = 'Mozilla';
} elseif(eregi('msie', $user_agent)) {
$return = 'Internet Explorer';
} elseif(eregi('Chrome', $user_agent)) {
$return = 'Google Chrome';
} else {
$return = 'Browser konnte ';
$return .= 'nicht ermittelt werden!';
}
break;
case '3':
/**
* Return Fehler bei der
* übergabe von $location
*/
$return = 'Die Variable $location ';
$return .= 'wurde fehlerhaft übergeben!';
break;
default:
/**
* Ungültiger Aufruf!
*/
$return = 'Action wurde bei der ';
$return .= 'Function browserweiche() ';
$return .= 'nicht gesetzt';
break;
}
return($return);
}
/**
* Url für Opera
*/
$location['opera'] = 'opera.html';
/**
* Url für Firefox
*/
$location['firefox'] = 'firefox.html';
/**
* Url für Mozilla
*/
$location['mozilla'] = 'mozilla.html';
/**
* Url für Internet Explorer
*/
$location['ie'] = 'ie.html';
/**
* Url für Google Chrome
*/
$location['chrome'] = 'chrome.html';
/**
* Url für andere Browser
*/
$location['default'] = 'default.html';
/**
* Beispiel für Browserausgabe,
* wenn keine Ausgabe erwünscht ist,
* so löschen Sie bitte:
* echo browserweiche('2',$location);
*/
echo browserweiche('2', $location);
/**
* Beispiel für Browser Weiterleitung,
* es darf hierbei keine Ausgabe vorher
* vom Script ausgegeben werden, sonst
* wird die Seite nicht umgeleitet.
*/
echo browserweiche('1', $location);
?>
Weiterführende Links:
PHP Function - Erklärung wie man mit PHP Function arbeitet.
Php Array - Hier wird ihnen erklärt, wie sie PHP Array`s verwenden