Thursday, June 13, 2013

Script PHP Deteksi Browser

1 comment
Untuk mendeteksi browser pengunjung website menggunakan php bisa menggunakan http user agent, di php http user agent sendiri tersimpan pada variabel $_SERVER['HTTP_USER_AGENT'], pada variabel tersebut banyak tersimpan informasi user seperti sistem operasi, jenis dan versi browser, ditambah merk dan type perangkat untuk mobile device.

Untuk melihat apa saja informasi yg terkandung dalam $_SERVER['HTTP_USER_AGENT'] buat sebuah file php dan echo kan atau cetak ke dalam file tersebut
echo $_SERVER['HTTP_USER_AGENT'];
hasilnya "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36" ternyata hasilnya berupa string yang panjang dan ada beberapa nama browser, lalu sebenarnya browser apa yang kita gunakan?

Untuk membuatnya lebih mudah dibaca kita harus mengolahnya terlebih dahulu supaya yang tampil hanya informasi yang kita perlukan saja

Syntax:
function getBrowser() 
{ 
    $u_agent = $_SERVER['HTTP_USER_AGENT']; 
    $bname = 'Unknown';
    $platform = 'Unknown';
    $version= "";
    
    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';
    }
    
    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"; 
    } 
    
    
    $known = array('Version', $ub, 'other');
    $pattern = '#(?' . join('|', $known) .
    ')[/ ]+(?[0-9.|a-zA-Z.]*)#';
    if (!preg_match_all($pattern, $u_agent, $matches)) {
    }
    
    
    $i = count($matches['browser']);
    if ($i != 1) {
        
        if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            $version= $matches['version'][0];
        }
        else {
            $version= $matches['version'][1];
        }
    }
    else {
        $version= $matches['version'][0];
    }
    
    
    if ($version==null || $version=="") {$version="?";}
    
    return array(
        'userAgent' => $u_agent,
        'name'      => $bname,
        'version'   => $version,
        'platform'  => $platform,
        'pattern'    => $pattern
    );
} 

$ua=getBrowser();
$yourbrowser= "
Your Agent :
IP : ".$_SERVER['REMOTE_ADDR']."
OS : ".$ua['platform']."
Browser : " . $ua['name'] . "
Version : " . $ua['version'];
print_r($yourbrowser);
Hasil:

1 comment:

  1. kok ga bisa sempurna> opera kok dideteksi sebagai chrome? tolong solusinya. thanks sebelumnya...

    ReplyDelete