How to detect browser in PHP? Here is a PHP code to detect browser, browser's version and platform.
function browserInfo($ua)
{
$userAgent = $ua;
$bname = 'Unknown';
$ub=0;
$platform = 'Unknown';
$version= "";
//Check Platform
if (preg_match('/linux/i', $userAgent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/i', $userAgent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/i', $userAgent)) {
$platform = 'windows';
}
// Matching Browser
if(preg_match('/MSIE/i',$userAgent) && !preg_match('/Opera/i',$userAgent))
{
$bname = 'Internet Explorer';
$ub = "MSIE";
}
elseif(preg_match('/Firefox/i',$userAgent))
{
$bname = 'Mozilla Firefox';
$ub = "Firefox";
}
elseif(preg_match('/Chrome/i',$userAgent))
{
$bname = 'Google Chrome';
$ub = "Chrome";
}
elseif(preg_match('/Safari/i',$userAgent))
{
$bname = 'Apple Safari';
$ub = "Safari";
}
elseif(preg_match('/Opera/i',$userAgent))
{
$bname = 'Opera';
$ub = "Opera";
}
elseif(preg_match('/Netscape/i',$userAgent))
{
$bname = 'Netscape';
$ub = "Netscape";
}
// get version
$known = array('Version', $ub, 'other');
$pattern = '#(?<browser>' . join('|', $known) .
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
if (!preg_match_all($pattern, $userAgent, $matches)) {
// no matching
}
$i = count($matches['browser']);
if ($i != 1) {
if (strripos($userAgent,"Version") < strripos($userAgent,$ub)){
@$version= $matches['version'][0];
}
else {
@$version= $matches['version'][1];
}
}
else {
@$version= $matches['version'][0];
}
if ($version==null || $version=="") {$version="?";}
return array(
'bname' => $bname,
'version' => $version,
'platform' => $platform
);
}
Example:
$ua='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36';
$info=browserInfo($ua);
echo 'browser: '.$info['name'].'<br>';
echo 'version: '.$info['version'].'<br>';
echo 'platform: '.$info['platform'];
echo 'version: '.$info['version'].'<br>';
echo 'platform: '.$info['platform'];
Output:
Output of above code is:
browser: Google Chrome
version: 46.0.2490.71
platform: mac
version: 46.0.2490.71
platform: mac
Detect browser name in PHP
In above code bname will give name of the browser.
Detect browser Version in PHP
'version' will return full version of the browser.
Detect platform in PHP
'platform' will return name of the platform (Windows,Linux or Mac)