clsMobileDetection.php
======================
class to detect mobile devices based on the user agent and redirect on different ways
Usage:
include this class as first line, before you send any content to the browser, e.g.
require_once('clsMobileDetection.php'); (see index.php)
activate in clsMobileDetection.php one of the last lines
$objMobile->RedirectMobile("SUBDOM"); if you want to redirect to a subdomain, e.g. http://m.my-pages.com/...
or $objMobile->RedirectMobile("MOBIDOM"); if you want to redirect to a .mobi domain, e.g. http://www.my-pages.mobi/...
or $objMobile->RedirectMobile("SUBDIR"); if you want to redirect to a special subdirectory, e.g. http://www.my-pages.com/m/...
alternative:
if you prefer to switch between different script sequences inside the same script, use the IsMobile()-method (see index2.php)
additional:
if you use the get-parameter noMobile, e.g. http://www.my-pages.com?noMobile=true => the redirection will be bypassed;
This is very useful, if your are inside the mobile version of a webpage and you will offer an alternate link to the conventional webpage.
The decision will be saved in a cookie for the next visits.
If you want to go back to the mobile version (independs of the agent), use the get-parameter Mobile, e.g. http://www.my-pages.com?Mobile=true
=> The agent-detection will be bypassed and the cookie will be deleted.
=> I advice to add the canonical link tag on each page (e.g. <link rel="canonical" href="http://www.my-pages.com/page.php" />) in order to prevent duplicate content (because call with/without noMobile/Mobile parameter)
=====================================================================================================================================
Klasse zur Erkennung von mobilen Geräten auf Basis des User-Agents und Weiterleitung zu der mobilen Version der WebSite
Verwendung:
diese Klasse als erste Zeile einfügen - noch bevor Inhalte an den Browser gesendet werden, z.B.
require_once('clsMobileDetection.php'); (siehe index.php)
in clsMobileDetection.php Aktivierung einer der letzten Zeilen
$objMobile->RedirectMobile("SUBDOM"); für die Umleitung zu einer Subdomäne, z.B. http://m.my-pages.com/...
oder $objMobile->RedirectMobile("MOBIDOM"); für die Umleitung zu einer .mobi Domäne, z.B. http://www.my-pages.mobi/...
oder $objMobile->RedirectMobile("SUBDIR"); für die Umleitung in ein spezielles Unterverzeichnis, z.B. http://www.my-pages.com/m/...
Alternative:
Wenn die Unterscheidung innerhalb der gleichen Webseite erfolgen soll, z.B. nur Verwendung einer unterschiedlichen DOCTYPE oder unterschiedlicher Stylesheets,
dann kann man die Methode IsMobile() verwenden (siehe index2.php)
Zusatz:
Bei Verwendung des Get-Parameters noMobile, z.B. http://www.my-pages.com?noMobile=true
wird kein automatisches Redirect ausgeführt. Man bleibt auf der konventionellen Seite stehen.
Dies ist nützlich, wenn man sich z.B. auf der mobilen Version einer Webseite befindet und einen alternativen Link
zu der herkömmlichen Version einer Webseite anbieten will. Die Auswahl wird in einem Cookie für die nächsten Besuche gespeichert.
Will man die mobile Version anzeigen, unabhängig vom Agent, dann kann man den get-parameter Mobile verwenden,
z.B. http://www.my-pages.com?Mobile=true => Die Erkennung anhand des UserAgents wird übergangen und es wird zu der mobilen Version weiter geleitet.
In diesem Fall wird ein evtl. vorh. Cookie gelöscht.
Empfehlung: Bitte das canonical link tag auf jeder Seite angeben (z.B. <link rel="canonical" href="http://www.my-pages.com/page.php" />), um duplicate content vorzubeugen (wegen des möglichen Aufrufes mit und ohne noMobile/Mobile Parameter)
=====================================================================================================================================
author Harry Kämpf <kontakt@kaempf-nk.de>
version 1.3.1 - 2015-01-10
license http://www.opensource.org/licenses/mit-license.php
=====================================================================================================================================
history:
version 1.3.1 - 2015-01-10
replace the user-agent pattern array by regular expressions
revision of user-agent pattern (more detailed)
version 1.3 - 2012-04-05
get-parameter mobile=true (new)
cookie (new)
version 1.2 - 2012-01-12
bug fixing
version 1.1 - 2012-01-10
https-Support (new)
version 1.0 - 2011-12-28
first release
|