6
votes

Comment puis-je détecter le navigateur avec php ou javascript?

Comment puis-je détecter si l'utilisateur n'utilise aucun des navigateurs Chrome, Firefox ou Internet Explorer à l'aide de JavaScript ou de PHP?


1 commentaires

Je pourrais indiquer que la connaissance du navigateur n'est utile que tant que la chaîne d'agent n'a pas été modifiée ... je suppose que vous savez déjà cela.


12 Réponses :


6
votes

Il existe en fait une fonction de PHP pour cela, get_browser .


3 commentaires

Très intéressant, je n'étais pas au courant de cette fonction. thx pour l'info


Cette fonction nécessite BrowseCap.ini, qui n'est pas de base PHP.


Vrai. Voici une version PHP pure de cette fonction. Il met à jour automatiquement le fichier de navigation. code.google.com/p/phpbrowscap



1
votes

J'utilise la classe Navigateur Détectez pour php.


0 commentaires

7
votes

Voici le code JavaScript via lequel vous pouvez facilement détecter le navigateur.

    var userAgent = navigator.userAgent.toLowerCase();

    // Figure out what browser is being used.
    var Browser = {
        Version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
        Chrome: /chrome/.test(userAgent),
        Safari: /webkit/.test(userAgent),
        Opera: /opera/.test(userAgent),
        IE: /msie/.test(userAgent) && !/opera/.test(userAgent),
        Mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent),
        Check: function() { alert(userAgent); }
    };

    if (Browser.Chrome || Browser.Mozilla) {
        // Do your stuff for Firefox and Chrome.
    }
    else if (Browser.IE) {
        // Do something related to Internet Explorer.
    }
    else {
        // The browser is Safari, Opera or some other.
    }


0 commentaires

1
votes

in php j'utilise le serveur € ['http_user_agent'] la valeur et l'attaque avec regex ou stristr.


0 commentaires

0
votes

Le moyen le plus simple de le faire avec JavaScript est xxx

dans l'emplacement .href , vous pouvez utiliser une variable PHP comme: < Pré> xxx

Cela prendrait une URL donnée en tant que requête sur le script PHP et transmettre à cette URL. Le script serait appelé comme ceci: xxx

bonne chance.


0 commentaires

15
votes

La meilleure façon de faire cela dans JS I trouvé est sur QuirksMode . J'ai fait un pour PHP qui devrait fonctionner avec des navigateurs communs: xxx


1 commentaires

Alors j'ai lu autour de moi et c'est ce que j'ai trouvé ... que ce soit PHP ou JavaScript, ils obtiennent tous les deux les informations sur lesquelles ce navigateur est via HTTPHeaders, ainsi que la façon dont Apache fait. Correct si je me trompe.



5
votes

code PHP de get_browser () est totalement Travailler pour moi;)

<?php
    function getBrowser()
    {
        $u_agent = $_SERVER['HTTP_USER_AGENT'];
        $bname = 'Unknown';
        $platform = 'Unknown';
        $version= "";

        //First get the platform?
        if (preg_match('/linux/i', $u_agent)) {
            $platform = 'linux';
        }
        elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
            $platform = 'mac';
        }
        elseif (preg_match('/windows|win32/i', $u_agent)) {
            $platform = 'windows';
        }

        // Next get the name of the useragent yes separately and for good reason.
        if (preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
        {
            $bname = 'Internet Explorer';
            $ub = "MSIE";
        }
        elseif (preg_match('/Firefox/i',$u_agent))
        {
            $bname = 'Mozilla Firefox';
            $ub = "Firefox";
        }
        elseif (preg_match('/Chrome/i',$u_agent))
        {
            $bname = 'Google Chrome';
            $ub = "Chrome";
        }
        elseif (preg_match('/Safari/i',$u_agent))
        {
            $bname = 'Apple Safari';
            $ub = "Safari";
        }
        elseif (preg_match('/Opera/i',$u_agent))
        {
            $bname = 'Opera';
            $ub = "Opera";
        }
        elseif (preg_match('/Netscape/i',$u_agent))
        {
            $bname = 'Netscape';
            $ub = "Netscape";
        }

        // Finally get the correct version number.
        $known = array('Version', $ub, 'other');
        $pattern = '#(?<browser>' . join('|', $known) .
        ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
        if (!preg_match_all($pattern, $u_agent, $matches)) {
            // we have no matching number just continue
        }

        // See how many we have.
        $i = count($matches['browser']);
        if ($i != 1) {
            //we will have two since we are not using 'other' argument yet
            //see if version is before or after the name
            if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
                $version= $matches['version'][0];
            }
            else {
                $version= $matches['version'][1];
            }
        }
        else {
            $version= $matches['version'][0];
        }

        // Check if we have a number.
        if ($version==null || $version=="") {$version="?";}

        return array(
            'userAgent' => $u_agent,
            'name'      => $bname,
            'version'   => $version,
            'platform'  => $platform,
            'pattern'    => $pattern
        );
    }

    // Now try it.
    $ua=getBrowser();
    $yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .
                  $ua['platform'] . " reports: <br >" . $ua['userAgent'];
    print_r($yourbrowser);
?>


0 commentaires

1
votes

Ceci peut être un moyen simple de savoir que le navigateur n'utilise pas IE, Chrome ou FF

if (navigator.userAgent.indexOf("Chrome") != -1)
    BName = "Chrome";
if (navigator.userAgent.indexOf("Firefox") != -1)
    BName = "Firefox";
if (navigator.userAgent.indexOf("MSIE") != -1)
    BName = "IE";

if(BName=='Chrome' || BName=='Firefox' || BName=='IE') 
    BName="Not other";
else BName="other";
alert(BName);


0 commentaires

1
votes

Cette classe a fait cette classe en JS xxx

instancier en appelant xxx


0 commentaires

0
votes

L'introduction de IE 11 a fait cette méthode obsolète, bien que je l'ai mise à jour pour le prendre en compte. Il est beaucoup préférable d'utiliser JavaScript et de la détection de fonctionnalités. Bien sûr, parfois, vous voulez simplement tuer un navigateur complètement et / ou avoir à adapter le cas d'utilisation où JavaScript peut être désactivé.

Je ne connais pas le but ultime de l'OP, mais dans mon cas tout ce que j'ai vraiment voulu faire était de rebondir les navigateurs de Balmer. Ce que nous avions en place a échoué pour IE 10 utilisateurs en raison d'un faux positif causé par une regex similaire à une autre solution. (Je ne sais pas si la regex de ce fil provoque le même faux positif ou non, mais je sais que celui de cette page n'est pas identique à celui que nous avions cassé). P>

J'ai fait une méthode qui ne comptait pas sur une regex (en soi). Je ne voulais pas non plus rencontrer dans un scénario où j'ai dû modifier le script pour accueillir de nouveaux navigateurs, cependant, éditer le script pour expirer des navigateurs obsolètes à l'avenir est acceptable. P>

function obsolete_browser(){
$ua = (isset($_SERVER['HTTP_USER_AGENT']))?$_SERVER['HTTP_USER_AGENT']:'';
$browser = explode(';',$ua);
foreach($browser as &$b){ 
    $b = trim($b); // remove the spaces
    $c = explode('.',$b); // major revision only please
    if($c[0]){ $b = $c[0]; }
}
if(in_array("Trident/7",$browser)){ // IE11
    return false;
} else if(in_array('MSIE 4',$browser) 
|| in_array('MSIE 5',$browser) 
|| in_array('MSIE 6',$browser)  
|| in_array('MSIE 7',$browser) 
//  || in_array('MSIE 8',$browser) // we'll need this soon enough, right?
|| in_array('BOLT/2',$browser) // worst browser ever
){
    return true;
}
return false;
}


0 commentaires

2
votes

1) 99,9% Détecteur précis: BrowserDetection.php ( Exemples )

2) La fonction la plus simple (mais inexacte pour le trucking ): xxx


0 commentaires

0
votes

Simplement script Java strong> qui détecte votre navigateur em> em> strud>, appelez simplement cette fonction forte>:

    <script>
 function which_browser() {

 //browser_flag --> 0 --> Opera, Chrome, Safari, Firefox
 //browser_flag --> 1 --> Internet Explorer
 var browser_flag = 0;  

 if((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1 ) 
{
    alert('Opera --> browser_flag = ' + browser_flag);
}
else if(navigator.userAgent.indexOf("Chrome") != -1 )
{
    alert('Chrome --> browser_flag = ' + browser_flag);
}
else if(navigator.userAgent.indexOf("Safari") != -1)
{
    alert('Safari --> browser_flag = ' + browser_flag);
}
else if(navigator.userAgent.indexOf("Firefox") != -1 ) 
{
     alert('Firefox --> browser_flag = ' + browser_flag);
}
else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
{
  browser_flag = 1;

  alert('IE --> browser_flag = ' + browser_flag); 
}  
else 
{
   alert('unknown');
}


return browser_flag;
}
</script>


0 commentaires