Maison > développement back-end > Problème PHP > Comment PHP détermine-t-il s'il est ouvert sur un téléphone mobile ou sur un PC ?

Comment PHP détermine-t-il s'il est ouvert sur un téléphone mobile ou sur un PC ?

PHPz
Libérer: 2023-04-21 09:56:03
original
3279 Les gens l'ont consulté

À l'ère de l'Internet mobile d'aujourd'hui, optimiser la conception de sites Web pour s'adapter à l'utilisation des différents terminaux utilisateurs est devenu une tâche nécessaire. Par conséquent, comment déterminer en PHP si un utilisateur utilise un téléphone mobile ou un PC lorsqu'il accède à un site Web est devenu l'un des problèmes auxquels les développeurs doivent faire face. Cet article présentera quelques codes PHP courants pour aider les développeurs à déterminer si le client qui ouvre le site Web est un téléphone mobile ou un PC.

1. Déterminez le terminal d'accès via HTTP_USER_AGENT

HTTP_USER_AGENT est une information d'en-tête dans le protocole HTTP. L'en-tête de la requête contient de nombreuses informations d'identification de l'appareil, qui peuvent être utilisées pour déterminer le type de périphérique du terminal d'accès. En analysant le HTTP_USER_AGENT dans l'en-tête de la demande de l'utilisateur, le navigateur, le système d'exploitation, l'appareil mobile et d'autres informations utilisées par l'utilisateur peuvent être obtenues, qui incluent également les informations d'identification de l'appareil mobile ou du périphérique PC.

L'implémentation spécifique est la suivante :

function is_mobile(){
    if (isset($_SERVER['HTTP_USER_AGENT'])) {
        $user_agent = $_SERVER['HTTP_USER_AGENT'];
        $mobile_agents = Array("Android", "iPhone", "iPod", "iPad", "Windows Phone", "BlackBerry", "SymbianOS");
        foreach ($mobile_agents as $mobile_agent) {
            if (strpos($user_agent, $mobile_agent) !== false) {
                return true;
            }
        }
    }
    return false;
}
Copier après la connexion

Parcourez le tableau $mobile_agents et vous pouvez déterminer si le terminal d'accès est un appareil mobile en fonction du fait que HTTP_USER_AGENT contient l'identifiant de l'appareil mobile. Si vrai est renvoyé, cela signifie que l'utilisateur a utilisé un appareil mobile, sinon cela signifie que l'utilisateur a utilisé un appareil PC.

2. Déterminez le terminal d'accès via la méthode d'origine suspectée de $_SERVER

En plus des informations d'en-tête HTTP_USER_AGENT, il existe une autre méthode de jugement, qui consiste à déterminer le type de terminal d'accès via la valeur HTTP_ACCEPT dans la méthode d'origine suspectée de $_SERVEUR. La valeur HTTP_ACCEPT représente le type de page que le navigateur de l'utilisateur peut accepter. Habituellement, le navigateur accepte les données de type texte/html par défaut, tandis que les appareils mobiles demandent le format de données de type texte/html ou wap.

Le code d'implémentation spécifique est le suivant :

function is_mobile(){
    if (isset($_SERVER['HTTP_ACCEPT'])) {
        $accept = $_SERVER['HTTP_ACCEPT'];
        if (strpos($accept, 'vnd.wap.xhtml+xml') !== false || 
            strpos($accept, 'text/vnd.wap.wml') !== false) {
            return true;
        }
    }
    return false;
}
Copier après la connexion

Si vrai est renvoyé, cela signifie que l'utilisateur a utilisé un appareil mobile pour accéder, sinon cela signifie que l'utilisateur a utilisé un appareil PC pour accéder.

3. Accédez à un chemin d'URL spécifique via un appareil mobile

Par défaut, lorsqu'un appareil mobile accède au site Web, il passe automatiquement à la version mobile de la page Web, tandis que lorsqu'un appareil de bureau accède au site Web, il passe automatiquement à la version mobile de la page Web. à la version de bureau de la page Web. Les développeurs peuvent traiter les requêtes provenant de différents appareils en fonction des différences dans les chemins d'URL.

Par exemple, ajouter la chaîne "/m/" à l'URL signifie que vous visitez une page de site Web mobile. Après avoir adapté le contenu, celui-ci peut toujours être rendu. Si l'URL d'accès ne contient pas la chaîne "/m/", cela signifie que vous accédez à la page PC.

Le code d'implémentation spécifique est le suivant :

function is_mobile(){
    if(isset($_SERVER['HTTP_REFERER'])){
        $referer = strtolower($_SERVER['HTTP_REFERER']);
        $mobile_url = strtolower($_SERVER['HTTP_HOST'].'/m/');
        if(strpos($referer, $mobile_url) !== false){
            return true;
        }
    }
    return false;
}
Copier après la connexion

En vérifiant la valeur de $_SERVER['HTTP_REFERER'], vous pouvez obtenir le lien de la page à partir de laquelle l'utilisateur est entré dans la page actuelle, déterminant ainsi si l'utilisateur utilise un mobile appareil ou un appareil PC.

Résumé

Les trois méthodes ci-dessus peuvent toutes être utilisées pour déterminer le type de terminal utilisateur. La méthode à choisir dépend principalement de la situation réelle de l'application. Dans des applications pratiques, nous pouvons appliquer ces méthodes à différents scénarios pour offrir aux utilisateurs une expérience plus conviviale. Si un développeur souhaite développer une application Web adaptée à la fois aux appareils mobiles et aux PC, alors en utilisant la méthode ci-dessus, elle peut être facilement mise en œuvre.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal