Mobilgerät in PHP erkennen
-
Verwenden die Klasse
mobiledetect
, um mobile Geräte in PHP zu erkennen -
Verwendung von
HTTP_USER_AGENT
und der Funktionpreg_match()
zur Erkennung mobiler Geräte in PHP
Wir werden einige Methoden vorstellen, um mobile Geräte in PHP zu erkennen.
Verwenden die Klasse mobiledetect
, um mobile Geräte in PHP zu erkennen
Wir können eine leichtgewichtige PHP-Klasse namens Mobile Detect
verwenden, um mobile Geräte in PHP zu erkennen. Es erkennt auch Tablet-Geräte. Die Bibliothek verwendet bestimmte HTTP-Header und User-Agent-Strings, um mobile Geräte zu erkennen. Wir können die Bibliothek mit dem Composer mit dem folgenden Befehl herunterladen.
composer require mobiledetect/mobiledetectlib
Die Bibliothek stellt verschiedene Methoden wie isMobile()
, isTablet()
, isIOS()
zur Verfügung, um verschiedene mobile Umgebungen zu erkennen. Wir können ein Objekt der Klasse Mobile_Detect()
erstellen und diese Methoden verwenden.
Laden Sie beispielsweise die Bibliothek im Projektverzeichnis mit dem obigen Composer-Befehl herunter. Als nächstes benötigen Sie die Datei autoload.php
mit der Funktion require_once
. Die Datei befindet sich im Verzeichnis vendor
. Als nächstes erstellen Sie ein Objekt $detect
der Klasse Mobile_Detect()
. Verwenden Sie dann die Funktion isMobile()
in einer if
-Bedingung. Zeigen Sie im Block if
die Meldung Mobile device detected
an und zeigen Sie im else
-Block die Meldung Mobile device not detected
an.
Das folgende Beispiel erkennt, ob die Webseite von einem mobilen Gerät aus aufgerufen wird. Der Ausgabeabschnitt unten zeigt den Fall, wenn die Webseite von einem PC aus geöffnet wird. Wir können den Responsive Design Mode finden, der mit einem Rechtsklick auf die Webseite zu Inspect Element geht. Dort können wir verschiedene Mobilgeräte auswählen und das Skript aktualisieren. Wenn wir ein Mobilgerät auswählen, ändert sich die Ausgabe auf Mobile device detected
. Auf diese Weise können wir die Klasse Mobile Detect
verwenden, um mobile Geräte in PHP zu erkennen.
Beispielcode:
require_once "vendor/autoload.php";
$detect = new Mobile_Detect;
if ( $detect->isMobile() ) {
echo "Mobile device detected";
}
else {
echo "Mobile device not detected";
}
?>
Ausgabe:
Mobile device not detected
Verwendung von HTTP_USER_AGENT
und der Funktion preg_match()
zur Erkennung mobiler Geräte in PHP
Wir können die Zeichenkette HTTP_USER_AGENT
verwenden, um die Informationen über den Browser des Benutzers zu erhalten, um die Website zu besuchen. Wir verwenden die superglobale Variable $_SERVER
und den String als Array-Element. Die superglobale Variable enthält Informationen über den Webserver. Wir erstellen eine benutzerdefinierte Sammlung von User-Agent-Strings, die in mobilen Geräten zu finden sind. Dann können wir mit der Funktion preg_match()
überprüfen, ob diese mit dem Browser übereinstimmen, den der aktuelle Benutzer durchsucht. Die Sammlung der User-Agent-Strings kann zusammen mit der Veröffentlichung neuer unterstützter Mobilgeräte manuell hinzugefügt werden. Eine Liste einer aktualisierten Sammlung von User-Agent-Strings finden Sie hier
Erstellen Sie beispielsweise eine Variable $user_agent
und speichern Sie $_SERVER["HTTP_USER_AGENT"]
darin. Verwenden Sie dann die Funktion preg_match()
, um den User-Agent-String abzugleichen. Verwenden Sie die Sammlung von Zeichenketten als ersten Parameter. Verwenden Sie als zweiten Parameter die Variable $user_agent
. Zum Schluss die Meldung entsprechend mit der Bedingung if-else
anzeigen.
Hier haben wir die Webseite von einem iPhone aus geöffnet. Daher stimmt der User-Agent-String mit der Sammlung überein. Auf diese Weise können wir das mobile Gerät in PHP erkennen.
Beispielcode:
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if(preg_match("/(android|webos|avantgo|iphone|ipod|ipad|bolt|boost|cricket|docomo|fone|hiptop|opera mini|mini|kitkat|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i",$user_agent ))
{
echo "mobile device detected";
}
else{
echo "mobile device not detected";
}
Ausgabe:
Mobile device detected
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn