Position actuelle: Accueil> Derniers articles> Comment utiliser get_client_version pour détecter la version du navigateur client

Comment utiliser get_client_version pour détecter la version du navigateur client

gitbox 2025-05-06

En PHP, la détection des versions du navigateur client est une exigence commune. Surtout pour les applications Web qui nécessitent différentes fonctions ou styles à différentes versions de navigateur, le contrôle des versions est très important. Nous pouvons y parvenir en obtenant la chaîne d'agent utilisateur du client. Cet article utilisera la fonction Get_Client_version personnalisée pour détecter la version du navigateur client et effectuer un contrôle approprié en fonction des informations de version.

1. Obtenez l'agent utilisateur du navigateur client

Chaque fois que le client demande, le navigateur enverra un en-tête HTTP nommé User-Agent , qui contient le type de navigateur, la version, le système d'exploitation et d'autres informations. PHP fournit $ _server ['http_user_agent'] pour obtenir ces informations.

Nous définissons d'abord une fonction pour extraire le type et la version du navigateur.

 function get_client_version() {
    // Obtenir User-Agent Chaîne
    $userAgent = $_SERVER['HTTP_USER_AGENT'];

    // Version du navigateur
    $browserVersion = '';
    // Détecter différents navigateurs
    if (preg_match('/MSIE (.*?);/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Trident\/.*rv:(.*?)\)/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Chrome\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Chrome: " . $matches[1];
    } elseif (preg_match('/Firefox\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Firefox: " . $matches[1];
    } elseif (preg_match('/Safari\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Safari: " . $matches[1];
    } elseif (preg_match('/Edge\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Edge: " . $matches[1];
    } else {
        $browserVersion = "Unknown Browser";
    }

    return $browserVersion;
}

Dans le code ci-dessus, nous utilisons des expressions régulières pour extraire le type de navigateur et les informations de version dans la chaîne utilisateur-agent . Différents navigateurs ont des identifiants différents, par exemple, le numéro de version de Chrome est généralement derrière Chrome / , tandis que Internet Explorer utilise MSIE ou Trident .

2. Effectuez le contrôle de la version

Une fois que nous avons extrait les informations de version du navigateur, nous pouvons ensuite les contrôler différemment en fonction de la version. Supposons que nous voulons faire une certaine compatibilité avec certaines anciennes versions de navigateurs, ou activer certaines fonctionnalités avancées pour les nouvelles versions de navigateurs, nous pouvons utiliser les informations de version pour brancher le contrôle.

Par exemple, nous pouvons vérifier la version Chrome et fournir différentes fonctionnalités en fonction de la version:

 function version_control() {
    $browserVersion = get_client_version();
    
    // ObtenirNavigateur名称和Version号
    preg_match('/([a-zA-Z]+): (\d+\.\d+)/', $browserVersion, $matches);
    
    $browserName = $matches[1] ?? 'Unknown';
    $version = $matches[2] ?? '0';

    // droite Chrome Effectuer le contrôle de la version
    if ($browserName == 'Chrome') {
        if (floatval($version) < 90) {
            echo "Le vôtre Chrome Version du navigateur过低,请升级以Obtenir更好的体验。";
        } else {
            echo "Le vôtre Chrome Version du navigateur支持最新功能!";
        }
    } elseif ($browserName == 'Firefox') {
        // droite Firefox Effectuer un contrôle de version similaire
        if (floatval($version) < 80) {
            echo "Le vôtre Firefox Version du navigateur过低,请升级以Obtenir更好的体验。";
        } else {
            echo "Le vôtre Firefox Version du navigateur支持最新功能!";
        }
    } else {
        echo "Détecté que vous utilisez $browserName Navigateur,Version: $version。";
    }
}

Dans cette fonction version_control , nous appelons d'abord get_client_version pour obtenir les informations de version du navigateur. Ensuite, nous effectuons un traitement logique différent en fonction du nom et de la version du navigateur. Par exemple, si la version de Chrome est inférieure à 90, l'utilisateur sera rappelé de mettre à niveau le navigateur.

3. Exemple de code complet

En combinant le code précédent, nous avons un exemple complet qui peut être utilisé dans la page PHP:

 <?php
function get_client_version() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    $browserVersion = '';
    
    if (preg_match('/MSIE (.*?);/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Trident\/.*rv:(.*?)\)/', $userAgent, $matches)) {
        $browserVersion = "Internet Explorer: " . $matches[1];
    } elseif (preg_match('/Chrome\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Chrome: " . $matches[1];
    } elseif (preg_match('/Firefox\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Firefox: " . $matches[1];
    } elseif (preg_match('/Safari\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Safari: " . $matches[1];
    } elseif (preg_match('/Edge\/(.*?) /', $userAgent, $matches)) {
        $browserVersion = "Edge: " . $matches[1];
    } else {
        $browserVersion = "Unknown Browser";
    }

    return $browserVersion;
}

function version_control() {
    $browserVersion = get_client_version();
    preg_match('/([a-zA-Z]+): (\d+\.\d+)/', $browserVersion, $matches);
    
    $browserName = $matches[1] ?? 'Unknown';
    $version = $matches[2] ?? '0';

    if ($browserName == 'Chrome') {
        if (floatval($version) < 90) {
            echo "Le vôtre Chrome Version du navigateur过低,请升级以Obtenir更好的体验。";
        } else {
            echo "Le vôtre Chrome Version du navigateur支持最新功能!";
        }
    } elseif ($browserName == 'Firefox') {
        if (floatval($version) < 80) {
            echo "Le vôtre Firefox Version du navigateur过低,请升级以Obtenir更好的体验。";
        } else {
            echo "Le vôtre Firefox Version du navigateur支持最新功能!";
        }
    } else {
        echo "Détecté que vous utilisez $browserName Navigateur,Version: $version。";
    }
}

// 调用Version控制
version_control();
?>

Le code ci-dessus peut vous aider à fournir différentes expériences utilisateur ou rappels en fonction de différentes versions de navigateur. Vous pouvez davantage vous développer en fonction de vos besoins, tels que l'ajout de support de navigateur ou d'activer des fonctionnalités frontales spécifiques dans certaines versions.