PHP ile tarayıcı tespiti

Bu yazımızda, sitemize gelen kullanıcıların hangi web taratıcıyı kullandıklarını tespit edeceğiz. Bir yazılımda ağırlıklı JavaScript kullanmıştım, bilindiği gibi JavaScript ağırlıklı olarak istemci tarafından çalışan bir betik dilidir ve her tarayıcıda farklı sonuçlar üretebilir. Bazı tarayıcılarda yazdığınız javascript kodları hiç çalışmayabilir. Bu durumda yapmanız gereken tüm tarayıcılarda web sitenizi test edip, kullanıcıya teslim etmeden yazılımda meydana gelebilecek aksaklıkları tespit etmektir.

Benim yaptığım yazılımdaki JavaScript kodları Mozilla Firefox'da çalışmıyordu, daha login ekranındayken bunu tespit edip, kullanıcıya tarayıcıyı değiştirmesini söyleyebilirsiniz. Ya da dilerseniz, web sitenize gelen kullanıcıların hangi web tarayıcıyı kullandıklarını kaydedip, daha sonra istatistiksel analizler çıkarabilirsiniz.





















Şimdi aşağıdaki getBrowser() fonksiyonunu inceleyelim.

function getBrowser() 
 { 
     $u_agent = $_SERVER['HTTP_USER_AGENT']; 
     $bname = 'Bilinmiyor';
     $platform = 'Bilinmiyor';
     $version= "";
 
     //Hangi platformdan gelmiş, Linux, Windows, MacOSX?
     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';
     }
     
     //Sonra hangi tarayıcı olduğuna  göz atalım
     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"; 
     } 
     
     // Tarayıcının versiyon numarasını tespit edelim.
     // burada düzenli ifadeler kullanarak bakıyoruz.
 
     $known = array('Version', $ub, 'other');
     $pattern = '#(?<browser>' . join('|', $known) .
     ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
 
     if (!preg_match_all($pattern, $u_agent, $matches)) {
         // buraya kadar bulamadık, aramaya devam
     }
     
 
     $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
     );
 } 















Şimdi bu fonksiyonun nasıl kullanıldığına bakalım.

$ua=getBrowser();
$tarayici= "Web tarayıcınız: " . $ua['name'] . " " . $ua['version'] . " " .$ua['platform'];
print_r($tarayici);
 
//Örneğin mozilla Firefox kullananların girmesini istemiyorsak
if ($ua['name']=='Mozilla Firefox')
{
echo "<center>";
echo "<h2>Mozilla Firefox tarayıcısı desteklenmiyor.</h2><br>" ;
echo "<h4>Lütfen Internet Explorer, Opera, Safari, Chrome tarayıcılarından birini kullanınız.</h4>";
echo "</center>";
 
} else  {

   echo "<br><br>Mozilla Firefox dışında bir tarayıcı kullanılıyor, girebilir.";
}

Programın tam çalışan halini aşağıdaki linke tıklayarak görebilir ya da programı indirebilirsiniz. Yoğunluktan biraz ara verdim, en kısa sürede yeni makaleler yazacağım.

ÇALIŞAN HALİ
KAYNAK KODU İNDİR


İyi çalışmalar...
Oğuzhan TAŞ - 2014 
 

Bookmark and Share