Jump to content
Fórum Script Brasil
  • 0

Script Que Detecta O Navegador, A Versão Dele E O Sistema Operacional


Beraldo

Question

Script postado por: Fabyo

Script que Detecta o Navegador, a versão dele e o Sistema Operacional

<?php

/*Fabyo Guimaraes*/

$user_agente = $_SERVER["HTTP_USER_AGENT"];

$Browser_Nome = strtok($user_agente, "/");
$Browser_Versao = strtok(" ");
   
if(ereg("MSIE",$user_agente))    {

        $Browser_Nome = "Internet Explorer";
        $Browser_Versao = strtok("MSIE");
        $Browser_Versao= strtok(" ");
        $Browser_Versao = strtok(";");
}

if(ereg("Opera", $user_agente))    {

        $Browser_Nome = "Opera";
        $Browser_Versao = strtok("Opera");
        $Browser_Versao = strtok("/");
        $Browser_Versao = strtok(";");
}
  
$Sistema = "desconhecido";
if(ereg("Windows",$user_agente) || ereg("WinNT",$user_agente) || ereg("Win95",$user_agente)) {
    $sistema = "Windows";
}

if(ereg("Mac", $user_agente)) {
    $sistema = "Macintosh";
}
if(ereg("X11", $user_agente)) { 
    $sistema = "Unix"; 
} 

echo "$Browser_Nome $Browser_Versao<br>Sistema Operacional :$sistema";


?>

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

<?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 seperately 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'];

?>

E para imprimir o resultado:

 <?php echo $ua['platform'] ?>

ou imprimir tudo: 

 <?php echo $yourbrowser ?>

Ele só não detecta se é mobile, coisa que poderíamos fazer perguntando a resolução.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...