Utilisation de la fonction get_browser()

La fonction get_browser() permet d'obtenir des informations sur le navigateur de votre client. D'utilisation simple cette fonction vous permettra de réaliser des pages internet optimisées pour les capacités du navigateur de votre client.

Les scripts suivants ont été testé sous Debian 7 (Wheezy), Debian8 (Jessie) et Debian 9 (Stretch)

A savoir

Pour pouvoir utiliser cette fonction il faut avant tout avoir accès au php.ini de votre serveur ou, si vous êtes en hébergement mutualisé, espérez que votre fournisseur de services l'ai activé par défaut dans sa configuration. Les explications ci-dessous sont effectuées sur un serveur dédié équipé de l'OS Linux Debian. Cela devrai fonctionner aussi sur un serveur Ubuntu sans modification. Pour les autres distributions Linux, il faudra adapté.

Activer la fonction

Pour activer la fonction get_browser(), il faut avant tout télécharger la dernière version du fichier bibliothèque sur le site officiel du créateur1).

Pour le télécharger directement sur votre serveur Debian, vous pouvez directement entrer les commandes suivantes :

Le code ci-dessous est à exécuter en tant qu'utilisateur root.

command wget "http://browscap.org/stream?q=PHP_BrowsCapINI" --output-document php_browscap.ini
mkdir /etc/php5/extra
mv php_browscap.ini /etc/php5/extra
chown root: /etc/php5/extra/php_browscap.ini

Ensuite il faut activer la fonction dans le php.ini. Pour cela nous éditons ce fichier à l'aide d'un éditeur genre nano ou vi. Ensuite nous dé-commentons la ligne suivante en supprimant le ; se trouvant en début de ligne et entrez l'emplacement du fichier php_browscap.ini.

[browscap]
; http://php.net/browscap
;browscap = extra/browscap.ini

devient

[browscap]
; http://php.net/browscap
browscap = /etc/php5/extra/php_browscap.ini

Si PHP est un module d'apache, il ne faut pas oublier de redémarrer votre daemon APACHE avec la commande suivante :

service apache2 restart

Si vous utilisez php5-fpm vous devez relancer Apache et PHP.

service php5-fpm restart
service apache2 restart

Utilisation de la fonction

La syntaxe de la commande get_browser() est simple, elle est de la forme

get_browser($user_agent,$return_array);

  • $user_agent : Vous mettez ici l'entête user agent à analyser. Par défaut, il s'agit de l'entête user-agent spécifié à $_SERVER['HTTP_USER_AGENT']. Vous pouvez si vous le désirez mettre la valeur à NULL.
  • $return_array : Si cette valeur est a true cette fonction retournera un tableau au lien d'un objet.

Exemple

Nous prenons le code suivant comme exemple :

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
 
$browser = get_browser(null, true);
print_r($browser);
?>

Ce code nous retournera un tableau de cette sorte (les valeurs vont varier selon votre navigateur):

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0 

Array ( 
[browser_name_regex] => §^mozilla/5\.0 \(.*windows nt 6\.1.*wow64.*rv:.*\) gecko/.* firefox/8\..*$§ 
[browser_name_pattern] => Mozilla/5.0 (*Windows NT 6.1*WOW64*rv:*) Gecko/* Firefox/8.* 
[parent] => Firefox 8.0 
[platform] => Win7 
[win32] => 
[win64] => 1 
[browser] => Firefox 
[version] => 8.0 
[majorver] => 8 
[frames] => 1 
[iframes] => 1 
[tables] => 1 
[cookies] => 1 
[javascript] => 1 
[javaapplets] => 1 
[cssversion] => 3 
[minorver] => 0 
[alpha] => 
[beta] => 
[win16] => 
[backgroundsounds] => 
[vbscript] => 
[activexcontrols] => 
[isbanned] => 
[ismobiledevice] => 
[issyndicationreader] => 
[crawler] => 
[aolversion] => 0 
)

Mise à jour

[09/08/2015] : Adaptation Debian 7 et 8 [17/11/2017] : Mise à jour du document et harmonisation de la page

Auteurs et sources

1)
Il existe une version full et lite sur le site officiel