This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

GetInfo Class - PHP

By: a guest on Mar 11th, 2011  |  syntax: PHP  |  size: 4.93 KB  |  views: 80  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.     class getInfo
  3.     {
  4.         var $os;
  5.         var $b_name;
  6.         var $b_version;
  7.         var $ua;
  8.         var $ip;
  9.         var $cookie;
  10.         var $js;
  11.         var $screen;
  12.        
  13.         public function __construct()
  14.         {
  15.             setcookie('cookie','true');
  16.            
  17.             $getb = $this->getBrowser();
  18.             $this->os = $getb['platform'];
  19.             $this->b_name = $getb['name'];
  20.             $this->b_version = $getb['version'];
  21.             $this->ua = $getb['userAgent'];
  22.             $this->ip = $_SERVER['REMOTE_ADDR'];
  23.             $this->cookie = ($_COOKIE['cookie'] == 'true') ? true : false;
  24.             $this->js = ($_COOKIE['js'] == 'true') ? true : false;
  25.             $this->screen = (strlen($_COOKIE['screen'])) ? $_COOKIE['screen'] : false;
  26.         }
  27.        
  28.         public function jsCheck()
  29.         {
  30.             return "\n".'
  31.                function setCookie(c_name,value,exdays)
  32.                {
  33.                    var exdate=new Date();
  34.                    exdate.setDate(exdate.getDate() + exdays);
  35.                    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  36.                    document.cookie=c_name + "=" + c_value;
  37.                }
  38.                
  39.                setCookie("js","true",1);
  40.            '."\n";
  41.         }
  42.        
  43.         public function getResolution()
  44.         {
  45.             return "\n".'
  46.                function setCookie(c_name,value,exdays)
  47.                {
  48.                    var exdate=new Date();
  49.                    exdate.setDate(exdate.getDate() + exdays);
  50.                    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  51.                    document.cookie=c_name + "=" + c_value;
  52.                }
  53.                
  54.                setCookie("screen",screen.width+\'x\'+screen.height,1);
  55.            '."\n";
  56.         }
  57.        
  58.         private function getBrowser()
  59.         {
  60.             $u_agent = $_SERVER['HTTP_USER_AGENT'];
  61.             $bname = 'Unknown';
  62.             $platform = 'Unknown';
  63.             $version= "";
  64.        
  65.             //First get the platform?
  66.             if (preg_match('/linux/i', $u_agent)) {
  67.                 $platform = 'linux';
  68.             }
  69.             elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
  70.                 $platform = 'mac';
  71.             }
  72.             elseif (preg_match('/windows|win32/i', $u_agent)) {
  73.                 $platform = 'windows';
  74.             }
  75.            
  76.             // Next get the name of the useragent yes seperately and for good reason
  77.             if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
  78.             {
  79.                 $bname = 'Internet Explorer';
  80.                 $ub = "MSIE";
  81.             }
  82.             elseif(preg_match('/Firefox/i',$u_agent))
  83.             {
  84.                 $bname = 'Mozilla Firefox';
  85.                 $ub = "Firefox";
  86.             }
  87.             elseif(preg_match('/Chrome/i',$u_agent))
  88.             {
  89.                 $bname = 'Google Chrome';
  90.                 $ub = "Chrome";
  91.             }
  92.             elseif(preg_match('/Safari/i',$u_agent))
  93.             {
  94.                 $bname = 'Apple Safari';
  95.                 $ub = "Safari";
  96.             }
  97.             elseif(preg_match('/Opera/i',$u_agent))
  98.             {
  99.                 $bname = 'Opera';
  100.                 $ub = "Opera";
  101.             }
  102.             elseif(preg_match('/Netscape/i',$u_agent))
  103.             {
  104.                 $bname = 'Netscape';
  105.                 $ub = "Netscape";
  106.             }
  107.            
  108.             // finally get the correct version number
  109.             $known = array('Version', $ub, 'other');
  110.             $pattern = '#(?<browser>' . join('|', $known) .
  111.             ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
  112.             if (!preg_match_all($pattern, $u_agent, $matches)) {
  113.                 // we have no matching number just continue
  114.             }
  115.            
  116.             // see how many we have
  117.             $i = count($matches['browser']);
  118.             if ($i != 1) {
  119.                 //we will have two since we are not using 'other' argument yet
  120.                 //see if version is before or after the name
  121.                 if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
  122.                     $version= $matches['version'][0];
  123.                 }
  124.                 else {
  125.                     $version= $matches['version'][1];
  126.                 }
  127.             }
  128.             else {
  129.                 $version= $matches['version'][0];
  130.             }
  131.            
  132.             // check if we have a number
  133.             if ($version==null || $version=="") {$version="?";}
  134.            
  135.             return array(
  136.                 'userAgent' => $u_agent,
  137.                 'name'      => $bname,
  138.                 'version'   => $version,
  139.                 'platform'  => $platform,
  140.                 'pattern'    => $pattern
  141.             );
  142.         }
  143.     }
  144. ?>
clone this paste RAW Paste Data