Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Browserweiche mit Php

Sie befinden sich: Home > Php Tutorial > Browserweiche mit Php

Browserweiche mit Php


Eintrag am:  22.09.2009
Hits / Besucher:  14129
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von    schubertmedia
 
Beschreibung

In diesem Tutorial erkläre ich ihnen, wie sie eine Browserweiche realisieren. Die Browserweichen wird mit PHP umgesetzt als eine eigene PHP Funktion.

Diese PHP Funktion 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 Funktion erklärt. Nachdem die Funktion erklärt wurde, wird anschließend mit zwei unterschiedlichen Beispielen die Verwendung dieser Funktion erklärt.

Die Browserweiche unterstützt folgende Browser: Mozilla, Opera, Internet Explorer und den Google Chrome Browser.

Hier nun die PHP Funktion:

<?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()) {
if(!isset($_SERVER['HTTP_USER_AGENT'])){
$user_agent='x';
} else {
$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 (preg_match('/opera/', $user_agent)) {
if (headers_sent() == false AND $location['opera'] != '') {
header('Location:'.$location['opera']);
}
} elseif(preg_match('/firefox/', $user_agent)) {
if (headers_sent() == false AND $location['firefox'] != '') {
header('Location:'.$location['firefox']);
}
} elseif(preg_match('/Mozilla/', $user_agent)) {
if (headers_sent() == false AND $location['mozilla'] != '') {
header('Location:'.$location['mozilla']);
}
} elseif(preg_match('/msie/', $user_agent)) {
if (headers_sent() == false AND $location['ie'] != '') {
header('Location:'.$location['ie']);
}
} elseif(preg_match('/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 (preg_match('/opera/', $user_agent)) {
$return = 'Opera';
} elseif(preg_match('/firefox/', $user_agent)) {
$return = 'Firefox';
} elseif(preg_match('/Mozilla/', $user_agent)) {
$return = 'Mozilla';
} elseif(preg_match('/msie/', $user_agent)) {
$return = 'Internet Explorer';
} elseif(preg_match('/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);
?>

Erklärung: 

Dieser PHP-Code enthält die Funktion browserweiche(), welche bei der Übergabe eines Parameters $art und eines Arrays $location überprüft, welcher Browser verwendet wird. 

Der Parameter $art kann den Wert 1 oder 2 annehmen. Wird $art = 1 übergeben, wird anhand des Browsers, welcher durch den User-Agenten ermittelt wird, eine Weiterleitung durch einen Header()-Aufruf durchgeführt. Jeder Browser bekommt dabei seine eigene URL zugewiesen und die Variable $location muss ein Array sein, welches die jeweiligen URLs enthält. Wird $art = 2 übergeben, so wird lediglich der Name des Browsers zurückgegeben. 

Nach dem Prüfen des Parameters $art wird der User-Agent überprüft. Falls der User-Agent nicht definiert ist, wird die Variable $user_agent auf den Wert 'x' gesetzt. Anschließend wird durch preg_match() festgestellt, welcher Browser verwendet wird. 

Sollte kein Header()-Aufruf vorher ausgeführt worden sein und $location nicht leer sein, wird der jeweilige Browser mittels des Headers()-Aufrufs weitergeleitet.

Sollte $location ein ungültiges Array sein, so wird $art auf den Wert 3 gesetzt und ein Fehlerstring zurückgegeben.

Wenn $art = 2 sein sollte, so wird anhand des User-Agents der Name des Browsers zurückgegeben. Sollte der Browser nicht ermittelt werden können, wird ein Fehlerstring zurückgegeben.

Zum Schluss wird der Rückgabewert, welcher vom Typ String sein muss, zurückgegeben.


Weiterführende Links:

PHP Function – Erklärung, wie man mit PHP Funktion arbeitet.
Php Array – Hier wird ihnen erklärt, wie sie PHP Arrays verwenden.

 

Tags:

 

Artikel hinzufügen bei: