Basit Tarayıcı Bilgileri Tanıma Sınıfı

PHP
49 lines
<?php
class tarayici{
var $sonuc;
function tarayici($bilgi){
$sistem="Windows|iPad|iPhone|Macintosh|Android|BlackBerry";
$tarayici="Firefox|Chrome";
$tarayici_v="Safari|Mobile";
$motor="Gecko|Trident|Webkit|Presto";
$duzenli="/((Mozilla)\/[\d\.]+|(Opera)\/[\d\.]+)\s\(.*?((MSIE)\s([\d\.]+).*?(Windows)|({$sistem})).*?\s.*?({$motor})[\/\s]+[\d\.]+(\;\srv\:([\d\.]+)|.*?).*?(Version[\/\s]([\d\.]+)(.*?({$tarayici_v})|$)|(({$tarayici})[\/\s]+([\d\.]+))|$).*/i";
$degistir='$7$8|$2$3|$9|${17}${15}$5$3|${18}${13}$6${11}';
$bilgi_dizi=explode("|",preg_replace($duzenli, $degistir, $bilgi, PREG_PATTERN_ORDER));
if(count($bilgi_dizi)>1){
$sonuc['tarayici'] =$bilgi_dizi[3];
if (preg_match("/^[\d]+\.[\d]+(?:\.[\d]{0,2}$)?/",$bilgi_dizi[4],$eslesme)){
$sonuc['versiyon']=$eslesme[0];
}else{
$sonuc['versiyon']=$bilgi_dizi[4];
}
$sonuc['sistem']=$bilgi_dizi[0];
$sonuc['insa']=$bilgi_dizi[2];
$sonuc['tip']=$bilgi_dizi[1];
}else{
return false;
}
switch(strtolower($sonuc['tarayici'])){
case "msie":
case "trident":
$sonuc['tarayici']="Internet Explorer";
break;
case "": // IE 11 is a steamy turd (thanks Microsoft...)
if (strtolower($sonuc['insa']) == "trident"){
$sonuc['tarayici']="Internet Explorer";
}
break;
}
switch(strtolower($sonuc['sistem'])){
case "android":
case "blackberry":
if ($sonuc['tarayici'] =="Safari" || $sonuc['tarayici'] == "Mobile" || $sonuc['tarayici'] == ""){
$sonuc['tarayici']="{$sonuc['sistem']} mobile";
}
break;
}
$this->sonuc=$sonuc;
}
}
$t=new tarayici($_SERVER['HTTP_USER_AGENT']);
print_r($t->sonuc);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
8 lines
Array
(
[tarayici] => Chrome
[versiyon] => 66.0
[sistem] => Windows
[insa] => WebKit
[tip] => Mozilla
)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX