Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Utiliser le fichier browscap.ini
Ce guide présente le rôle du fichier browscap.ini, utilisé par PHP pour identifier certaines caractéristiques d'un navigateur web (nom, version, système d'exploitation et capacités) à partir de son en-tête HTTP User-Agent.
L'utilisation de browscap.ini est aujourd'hui principalement destinée à assurer la compatibilité avec des applications existantes. Pour les nouveaux développements, des méthodes plus modernes sont généralement privilégiées.
Utilisation avec la fonction get_browser()
La fonction native PHP get_browser() nécessite l'accès à un fichier browscap.ini à jour afin d'identifier les caractéristiques du navigateur ayant effectué la requête.
Sur les Hébergements Web Infomaniak, ce fichier est généralement disponible à l'emplacement suivant :
/opt/php/lib/php/browscap.iniSi nécessaire, vous pouvez vérifier son contenu à l'aide du script suivant :
<?php
header('Content-Type: text/plain');
$file = '/opt/php/lib/php/browscap.ini';
if (file_exists($file)) {
echo file_get_contents($file);
} else {
echo 'File not found.';
}En raison de sa taille et du coût de son chargement, l'utilisation de browscap.ini peut avoir un impact sur les performances des applications qui s'appuient sur get_browser().
Alternatives recommandées
Pour les nouveaux projets, il est généralement préférable d'utiliser des solutions plus adaptées aux pratiques actuelles du développement web :
- Bibliothèques PHP installées avec Composer, telles que
matomo/device-detectorouwhichbrowser/parser, qui proposent une détection régulièrement mise à jour et plus complète des navigateurs et appareils. - User-Agent Client Hints (UA-CH), lorsque le navigateur les prend en charge, afin d'obtenir des informations structurées via les mécanismes prévus par les standards HTTP actuels.
- Détection de fonctionnalités (Feature Detection), en vérifiant directement la disponibilité d'une fonctionnalité (par exemple en JavaScript ou avec la règle CSS
@supports) plutôt qu'en déduisant le comportement à partir du navigateur utilisé.
Lien vers cette FAQ: https://faq.infomaniak.com/505
Cette FAQ a été utile?