Les fonctions ereg (), eregi (), ereg_* () et eregi_* () sont obsolètes en PHP 5.3 (version que tu dois très probablement utiliser). Elles sont avantageusement remplacées par les fonctions utilisant les expressions régulières compatibles PERL (comme
preg_match () ou
preg_replace ()).
Quant à la détection de navigateur, le fait de sa baser sur la chaîne d'agent utilisateur n'est pas une solution fiable à 100 % : rien ne t'empêche de configurer, par exemple, Safari pour qu'il passe pour Internet Explorer 6.
Si tu cherches à trier les navigateurs avec, d'une part, Internet Explorer (et ses différentes version) et, d'autre part, tous les autres navigateurs, la solution la plus fiable (et préconisée, d'ailleurs, par Microsoft) est de recourir aux
commentaires conditionnels.
<!-- Feuille de style pour tous les navigateurs -->
<link rel="stylesheet" href="style.css" type="text/css" />
<!-- Feuille de style pour IE, toutes versions confondues -->
<!--[if IE]>
<link rel="stylesheet" href="style-ie.css" type="text/css" />
<![endif]-->
<!-- Feuille de style pour les versions d'IE strictement postérieures à la 7 -->
<!--[if gt IE 7]>
<link rel="stylesheet" href="style-ie8-et-plus.css" type="text/css" />
<![endif]-->
<!-- Feuille de style pour IE 7 et versions antérieures -->
<!--[if lte IE 7]>
<link rel="stylesheet" href="style-ie7-et-moins.css" type="text/css" />
<![endif]-->
<!-- Feuille de style pour IE 6 seulement -->
<!--[if IE 6]>
<link rel="stylesheet" href="style-ie6.css" type="text/css" />
<![endif]-->
<!-- Feuille de style pour tous les navigateurs et pour les versions d'IE au moins égales à la 7 (noter le balisage particulier) -->
<!--[if gte IE 7]><!-->
<link rel="stylesheet" href="style-tous-plus-ie7-et-plus.css" type="text/css" />
<!--><![endif]-->
<!-- Feuille de style pour tous les navigateurs, sauf IE (noter le balisage particulier) -->
<!--[if !IE]><-->
<link rel="stylesheet" href="style-tous-sauf-ie.css" type="text/css" />
<!--><![endif]-->
Comme la coloration syntaxique le donne à voir, tout ce qui figure entre les blocs de commentaire conditionnel if et endif sera considéré comme un simple commentaire HTML par tous les navigateurs qui n'utilisent pas Trident comme moteur de rendu (même s'ils se font passer artificiellement pour IE), qui ne chargeront donc pas la feuille de style indiquée. Si les autres navigateurs doivent charger la feuille de style indiquée dans un commentaire conditionnel, il faut faire suivre le bloc if d'un <--> pour fermer le commentaire et faire précéder le bloc endif d'un <!--> pour rouvrir le commentaire (si au moins une version d'IE doit aussi charger la feuille de style, pour éviter l'affichage d'un <--> disgrâcieux, le <--> est à remplacer par <!-->).
Il est même possible d'imbriquer des commentaires conditionnels, comme suit :
<!--[if IE]>
Vous utilisez Internet Explorer<![if lte IE 8]> <![if IE 8]>8<![endif]><![if IE 7]>7<![endif]><![if IE 6]>6<![endif]><![if lt IE 6]>5.5 (ou une version encore antérieure remontant au vingtième siècle)<![endif]><![endif]>
<![endif]-->