IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Detecter navigateur et sa version [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Graphiste
    Inscrit en
    Janvier 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Graphiste

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17
    Par défaut Detecter navigateur et sa version
    Bonjour !
    Je souhaite pour mon site détecter le navigateur client et sa version grâce à PHP.
    Mes connaissances étant un peu limitées dans ce domaine, j'ai trouvé après quelques recherches ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php 
    		function browser_info($agent=null) {
     $known = array('msie', 'firefox', 'safari', 'webkit', 'opera', 'netscape',
     'konqueror', 'gecko');
     $agent = strtolower($agent? $agent: $_SERVER['HTTP_USER_AGENT']);
     $pattern = '#(?'. join('|', $known) .
     ')[/ ]+(?[0–9]+(?:\.[0–9]+)?)#';
     
     if (!preg_match_all($pattern, $agent, $matches)) return array();
     $i = count($matches['browser'])-1;
     return array($matches['browser'][$i], $matches['version'][$i]);
    }
     
    $res = browser_info();
    print_r($res);
    ?>
    Cela me retourne le message d'erreur :
    Warning: preg_match_all() [function.preg-match-all]: Compilation failed: unrecognized character after (? or (?- at offset 5 in C:\Users\Julien\Work\EasyPHP-5.3.9\www\Portfolio\OSdetect.php on line 9
    Array ( )
    Quelqu'un saurait m'expliquer le problème ? Voire même m'expliquer le fonctionnement de ce script ? Merci d'avance !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'expression est toute mal écrite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '#(?P<browser>'. join('|', $known) .  ')/(?P<version>[0-9]+\.[0-9]+)#';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Graphiste
    Inscrit en
    Janvier 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Graphiste

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17
    Par défaut
    Merci à toi pour ton aide aussi rapide !
    Ayant changé la ligne que tu m'as indiqué, voila maintenant ce que Firefox me retourne :
    "Array ( ) "

    ...

    Ça a l'air de progresser mais ce n'est toujours pas au point

  4. #4
    Membre averti
    Profil pro
    Graphiste
    Inscrit en
    Janvier 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Graphiste

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17
    Par défaut
    Personne ne peut m'aider ? ou pour me proposer d'autres scripts ?

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    PHP le fait nativement avec get_browser() et bien plus.

  6. #6
    Membre averti
    Profil pro
    Graphiste
    Inscrit en
    Janvier 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Graphiste

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17
    Par défaut
    Merci de ta réponse !
    J'avais déjà entendu parler de get_browser() mais l'histoire de php_browscap ne me semblait pas très clair ...
    En fait, quand je regarde dans mon php.ini (de EasyPHP 5.3.9), je trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [browscap]
    ; http://php.net/browscap
    ;browscap = extra/browscap.ini
    Et quand je vais sur le lien que tu m'as donné, il s'agit de php_browscap.ini et non browscap.ini. C'est même précisé "Do not use with PHP!"

    Où et comment dois je stipuler l'emplacement de php_browscap.ini dans php.ini ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Detection Navigateur et redirection
    Par jeromelabbe0649 dans le forum Langage
    Réponses: 5
    Dernier message: 25/01/2012, 23h35
  2. detecter navigateur + informer
    Par nebil dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/08/2010, 14h29
  3. detection de changement de version XML
    Par vladostivistic dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 26/06/2009, 16h41
  4. Detection navigateur fonction if
    Par polo66 dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 14/02/2009, 00h01
  5. Tester sur differents navigateurs et anciennes versions d'IE
    Par Hypnocrate dans le forum Webdesign & Ergonomie
    Réponses: 7
    Dernier message: 18/01/2008, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo