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 comme Brave, Chrome, Edge, Firefox, Opera, Safari… (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?