a
     
 
       
   Developpeur web    
       
   Php Mysql et divers    
       
   Shitao    
   S?n?que    
   Recettes    
       


> Identifier le navigateur en php avec http_user_agent

Identifier le navigateur du visiteur est assez simple avec php, en exploitant la variable HTTP_USER_AGENT. Cette variable retourne une chaine contenant toutes les informations utiles concernant le navigateur, dont son nom et sa version.

Une fonction php est d'ailleurs toute pr?te ? vous y aider : get_browser. Mais h?las elle s'appuie sur un fichier de signature de navigateur qui n'est pas install? par d?faut avec php, mais que vous devez obtenir vous m?me. L'emplacement de ce fichier doit ?tre param?tr? dans le php.ini.
Nous pouvons ?viter de toucher au php.ini, surtout que dans certains cas, c'est impossible. T?l?chargez une version r?cente du fichier lite_php_browscap.ini ? partir du site http://browsers.garykeith.com/ puis utilisez ce script pour afficher par exemple le nom et la version du navigateur.

<?

// fonctions trouv?es dans les commentaires de fnmatch et de get_browser

// fnmatch n'existe pas sous windows, il faut pr?voir un ?quivalent

if(!function_exists('fnmatch')) {
function fnmatch($pattern, $string) {
return preg_match("#^".strtr(preg_quote($pattern, '#'), array('\*' => '.*', '\?' => '.'))."$#i", $string);
} // end
}

// get_browser cherche toujours dans le php.ini, voici une fonction ?quivalente qui va chercher directement le fichier de signature :

function php_get_browser($agent = NULL){
$agent=$agent?$agent:$_SERVER['HTTP_USER_AGENT'];
$yu=array();
$q_s=array("#\.#","#\*#","#\?#");
$q_r=array("\.",".*",".?");
$brows=parse_ini_file("lite_php_browscap.ini",true);
foreach($brows as $k=>$t){
if(fnmatch($k,$agent)){
$yu['browser_name_pattern']=$k;
$pat=preg_replace($q_s,$q_r,$k);
$yu['browser_name_regex']=strtolower("^$pat$");
foreach($brows as $g=>$r){
if($t['Parent']==$g){
foreach($brows as $a=>$b){
if($r['Parent']==$a){
$yu=array_merge($yu,$b,$r,$t);
foreach($yu as $d=>$z){
$l=strtolower($d);
$hu[$l]=$z;
}
}
}
}
}
break;
}
}
return $hu;
}

$browser = php_get_browser();
echo "browser ".$browser[browser];
echo "<br>version ".$browser[version];

// ou bien toutes les informations
// print_r($browser);
?>

Vous pouvez tester votre navigateur sur cette page : http://www.cylman.com/test/browser.php 




retour

  Tags : navigateur

Cylman
  Tags : navigateur




RSS    |    Mes liens    |    Syndication    |    Plan    |    Sitemap XML    |    Cr?ation de site web ? Carcassonne