Pré-requis

POO en PHP

7.PHP pour le web

7.2.Les variables prédéfinies

7.2.4.Détection du navigateur (User-Agent)

7.2.4.4.Analyse du User-Agent avec Joomla-Framework

Si vous avez installé[comment?] Joomla-Framework, vous pouvez l'utiliser pour extraire les informations pertinentes du User-Agent, plus sûrement que par le code donné précédemment.
rem
  • Seuls les fichiers base/object.php et environment/browser.php sont nécessaire pour ce chapitre.
warning Pour que ces fichiers puissent être utilisés, la constante JPATH_PLATFORM (JPATH_BASE dans les anciennes versions) doit être définie (REM: Peu importe sa valeur pour ce chapitre).
Ce framework contient en effet une classe baptisée JBrowser() possédant, entre autres, les méthodes:
  • getBrowser() qui retourne l'identifiant du navigateur (ex: 'msie', 'mozilla', 'opera', 'konqueror', 'palm', 'lynx', etc.)
  • getVersion() qui retourne la version du navigateur et se décline en getMajor() et getMinor() qui retournent respectivement le numéro majeur et mineur de version.
  • isRobot() qui retourne TRUE si le navigateur est en fait un robot connu.
  • getPlatform() qui retourne l'identifiant du système d'exploitation ('win', 'unix' ou 'mac')
<?php
require_once('include_path_inc.php');

define('JPATH_PLATFORM', '');

//require_once("base/object.php");
require_once("environment/browser.php");

$ua = new JBrowser();
?>
Navigateur:<?php echo $ua->getBrowser();?><br>
&nbsp;&nbsp;Version:<?php echo $ua->getVersion()?><br>
&nbsp;&nbsp;Robot? :<?php echo ($ua->isRobot()?'oui':'Peut-être pas');?><br>
OS:<?php echo $ua->getPlatform();?><br>
avec par exemple
<?php
// Adaptez les chemins de recherche a votre environnement
set_include_path(get_include_path().PATH_SEPARATOR.
                 // Si Joomla-Framework est au meme niveau que ce fichier
                 dirname(__FILE__)."/libraries/joomla".PATH_SEPARATOR.
                 // Si la biblotheque Joomla-Framework est a la racine du site
                 $_SERVER["DOCUMENT_ROOT"]."/libraries/joomla".PATH_SEPARATOR.
                 // Si la biblotheque Joomla-Framework est au niveau superieur
                 $_SERVER["DOCUMENT_ROOT"]."/../libraries/joomla".PATH_SEPARATOR
                 );
?>
Qui pourrait retourner:
Navigateur:mozilla
  Version:5.0
  Robot? :oui
OS:unix