Détecter un appareil mobile en PHP

Subodh Poudel 30 janvier 2023
  1. Utilisez la classe mobiledetect pour détecter les appareils mobiles en PHP
  2. Utilisez HTTP_USER_AGENT et la fonction preg_match() pour détecter les appareils mobiles en PHP
Détecter un appareil mobile en PHP

Nous allons présenter quelques méthodes pour détecter les appareils mobiles en PHP.

Utilisez la classe mobiledetect pour détecter les appareils mobiles en PHP

Nous pouvons utiliser une classe PHP légère appelée Mobile Detect pour détecter les appareils mobiles en PHP. Il détecte également les tablettes. La bibliothèque utilise certains en-têtes HTTP et chaînes d’agent utilisateur pour détecter les appareils mobiles. Nous pouvons télécharger la bibliothèque en utilisant le composeur avec la commande suivante.

composer require mobiledetect/mobiledetectlib

La bibliothèque fournit diverses méthodes telles que isMobile(), isTablet(), isIOS() pour détecter divers environnements mobiles. Nous pouvons créer un objet de la classe Mobile_Detect() et utiliser ces méthodes.

Par exemple, téléchargez la bibliothèque dans le répertoire du projet à l’aide de la commande composer ci-dessus. Ensuite, demandez le fichier autoload.php à l’aide de la fonction require_once. Le fichier se trouve dans le répertoire vendor. Ensuite, créez un objet $detect de la classe Mobile_Detect(). Ensuite, utilisez la fonction isMobile() dans une condition if. A l’intérieur du bloc if, affichez le message Mobile device detected et affichez le message Mobile device not detected dans le bloc else.

L’exemple ci-dessous détectera si la page Web est accessible à partir d’un appareil mobile. La section de sortie ci-dessous affiche le cas où la page Web est ouverte à partir d’un PC. Nous pouvons trouver le mode de conception réactif allant à Inspecter l’élément avec un clic droit sur la page Web. Là, nous pouvons choisir différents appareils mobiles et actualiser le script. Lorsque nous choisissons un appareil mobile, la sortie passe à Mobile device detected. De cette façon, nous pouvons utiliser la classe Mobile Detect pour détecter les appareils mobiles en PHP.

Exemple de code :

require_once "vendor/autoload.php";

$detect = new Mobile_Detect;

if ( $detect->isMobile() ) {
echo "Mobile device detected";
}
else {
echo "Mobile device not detected";
}
?>

Production :

Mobile device not detected

Utilisez HTTP_USER_AGENT et la fonction preg_match() pour détecter les appareils mobiles en PHP

Nous pouvons utiliser la chaîne HTTP_USER_AGENT pour obtenir les informations sur le navigateur de l’utilisateur pour visiter le site Web. Nous utiliserons la variable superglobale $_SERVER et la chaîne comme élément de tableau. La variable superglobale contient des informations sur le serveur Web. Nous allons créer une collection personnalisée de chaînes d’agent utilisateur qui se trouvent dans les appareils mobiles. Ensuite, nous pouvons vérifier si ceux-ci correspondent au navigateur sur lequel l’utilisateur actuel navigue en utilisant la fonction preg_match(). La collection des chaînes d’agent utilisateur peut être ajoutée manuellement avec la sortie de nouveaux appareils mobiles pris en charge. Une liste d’une collection mise à jour de chaînes d’agent utilisateur se trouve ici.

Par exemple, créez une variable $user_agent et stockez $_SERVER["HTTP_USER_AGENT"] dedans. Utilisez ensuite la fonction preg_match() pour faire correspondre la chaîne user-agent. Utilisez la collection de chaînes comme premier paramètre. Utilisez la variable $user_agent comme deuxième paramètre. Enfin, affichez le message en conséquence en utilisant la condition if-else.

Ici, nous avons ouvert la page Web à partir d’un iPhone. Par conséquent, la chaîne user-agent correspond à la collection. De cette façon, nous pouvons détecter l’appareil mobile en PHP.

Exemple de code :

$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";
}

Production :

Mobile device detected
Subodh Poudel avatar Subodh Poudel avatar

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