Circum Blog

Circum Net – IT – Conseils pratiques

Vérifier le type de navigateur avec PHP

PHP

En accédant aux informations véhiculées par la requête HTTP émise à partir du client, on peut détecter le type de navigateur utilisé. Pour cela, en PHP, il suffit d’invoquer le tableau super glogal $_SERVER. Celui-ci peut être vu comme une variable spéciale de PHP qui contient toutes les informations relatives au serveur et à l’exécution (comme les en-têtes HTTP, les dossiers et chemins du script).

Il est toujours possible d’utiliser la fonction ‘var_dump’ pour afficher les informations structurées d’un tableau (en l’occurence $_SERVER). Vous en découvrirez ainsi toutes les composantes et informations utiles:

<?php
var_dump($_SERVER);
?>

L’élément particulier qui nous intéresse dans ce tableau est $_SERVER[‘HTTP_USER_AGENT’]. Sa valeur décrit le client HTML utilisé pour voir la page courante (exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586).

Affichage du contenu de l’élément HTTP_USER_AGENT :

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

Une fois sa valeur connue/récupérée, on peut l’utiliser pour optimiser l’affichage de sa page en fonction des capacités du client – notamment en exploitant la fonction prédéfinie get_browser().

HTTP_USER_AGENT et get_browser() :

<?php
$browser = get_browser($_SERVER['HTTP_USER_AGENT'], true);
print_r($browser);
?>

Les valeurs retournées reprennent les caractéristiques du navigateur : version, css, frames, JavaScript, cookie …

Vous pouvez évidemment à la suite mettre en oeuvre votre propre batterie de tests afin de détecter les propriétés/caractéristiques qui vous paraissent les plus pertinentes dans votre projet.

Détection de la plateforme du client:

<?php
$u_agent = $_SERVER['HTTP_USER_AGENT']; 
$platform = '';
if (preg_match('/linux/i', $u_agent)) 
    {
    $platform = 'linux';
    }
elseif (preg_match('/macintosh|mac os x/i', $u_agent)) 
    {
    $platform = 'mac';
    }
elseif (preg_match('/windows|win32/i', $u_agent)) 
    {
    $platform = 'windows';
    }
?>