HowTo: Browser and OS Detection with PHP

A very quick PHP script for detecting browser/device and OS agent strings from the HTTP User Agent variable. This is not 100% reliable because surfers and bots sometimes hide or falsify the user agent string so please use with caution.

Browser and OS Detection Script

This script detects whether the OS/Device is Linux, MacOS, iPad, iPhone, Droid, Unix, Windows or anything else (caught in Unknown). It also detects whether the browser is Chrome, Firefox, Opera or Internet Explorer.

  • The user agent string is stored in the variable $agent.
  • The operating system or device is stored in the variable $os.
  • The browser is stored in $br.

Copy and paste the following code into the top of your PHP file or save it in its own PHP file and use a PHP include to bring it into the file where the $br and $os variables are used:

<?php

// Simple browser and OS detection script.
// This will not work if User Agent is false.

$agent = $_SERVER['HTTP_USER_AGENT'];

// Detect Device/Operating System

if(preg_match('/Linux/i',$agent)) $os = 'Linux';
  elseif(preg_match('/Mac/i',$agent)) $os = 'Mac'; 
  elseif(preg_match('/iPhone/i',$agent)) $os = 'iPhone'; 
  elseif(preg_match('/iPad/i',$agent)) $os = 'iPad'; 
  elseif(preg_match('/Droid/i',$agent)) $os = 'Droid'; 
  elseif(preg_match('/Unix/i',$agent)) $os = 'Unix'; 
  elseif(preg_match('/Windows/i',$agent)) $os = 'Windows';
  else $os = 'Unknown';

// Browser Detection

if(preg_match('/Firefox/i',$agent)) $br = 'Firefox'; 
  elseif(preg_match('/Mac/i',$agent)) $br = 'Mac';
  elseif(preg_match('/Chrome/i',$agent)) $br = 'Chrome'; 
  elseif(preg_match('/Opera/i',$agent)) $br = 'Opera'; 
  elseif(preg_match('/MSIE/i',$agent)) $br = 'IE'; 
  else $bs = 'Unknown';

?>

Use the Script

The detection script checks a web browser’s user agent string for specific words like Chrome, Unix, Windows and Firefox. Here is a basic run though of how to use those user agent strings:

// Action when OS/Device is found

if($os=='Linux')
  {
    echo 'This is done when the OS/Device is Linux';
  }

if($os=='Mac')
  {
    echo 'This is done when the OS/Device is MacOS';
  }

if($os=='iPhone')
  {
    echo 'This is done when the OS/Device is iPhone';
  }

if($os=='iPad')
  {
    echo 'This is done when the OS/Device is iPad';
  }

if($os=='Droid')
  {
    echo 'This is done when the OS/Device is Droid';
  }

if($os=='Unix')
  {
    echo 'This is done when the OS/Device is Unix';
  }

if($os=='Unknown')
  {
    echo 'This is done when the OS/Device is unknown. This is the failsafe for when an OS/Device is not detected.';
  }

// Action when Browser is detected

if($br=='Firefox')
  {
    echo 'This is done when the Browser is Firefox';
  }

if($br=='Chrome')
  {
    echo 'This is done when the Browser is Chrome';
  }

if($br=='Opera')
  {
    echo 'This is done when the Browser is Opera';
  }

if($br=='MSIE')
  {
    echo 'This is done when the Browser is Microsoft Internet Explorer';
  }

if($br=='Unknown')
  {
    echo 'This is done when the Browser is Unknown. This is the failsafe for when a browser type is not detected';
  }

// Action when both browser and OS/Device are detected

if($os=='Linux' && $br=='Firefox')
  {
    echo 'This is done when the Browser is Firefox and the OS is Linux.';
  }

if($os=='Unknown' && $br=='Unknown')
  {
    echo 'This is done when the Browser is Unknown and the OS is Unknown. This is the catch-the-rest failsafe';
  }

It’s a simple script and very easy to use. If you need help, use the message box below to tell me.

Sharing is caring!

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
2
0
Would love your thoughts, please comment.x
()
x