2014-12-09 2 views
0

Существует много браузеров и некоторые общие функции среди всех. Как получить эти общие свойства браузера с помощью PHP.Как получить свойства браузера с помощью PHP?

<?php 
echo $_SERVER['HTTP_USER_AGENT']; 
$browser = get_browser(); 
print_r($browser); 
?> 

Это даст только имя браузера и остальные свойства?

+2

Есть ли какое-либо свойство вы ищете в частности? –

ответ

0

После определенной функция пользователя может работать для вас

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 
     ); 
    } 

Как найти на ссылках PHP для get_browser()

+0

Пожалуйста, поставьте нам источник этого кода ... Кредит, в котором должен быть кредит! – RichardBernards

+0

@RichardBernards: Конечно, но он сделал резервную копию давно. Если я нахожу, что, конечно, добавлю к моему ответу, не волнуйтесь :). –

+0

Не волнуйтесь, я уже добавил кредит – RichardBernards

Смежные вопросы