Detecting The User's Browser
Introduction
When a browser accesses any page on your website,
it sends a user-agent string to the server. In PHP, this string is stored in the $_SERVER superglobals array:
$_SERVER['HTTP_USER_AGENT']
Detecting Browsers
Internet Explorer 7.0 on Vista uses this user-agent string:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
and Firefox v.2.0.0.1 uses this user-agent string:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
To detect a browser using Firefox, we can simply can the user-agent string for the term "firefox" since every version of Firefox since 1.0
contains this term.
To detect Internet Explorer we can use this function:
function isExplorer()
{
if (!isset($_SERVER['HTTP_USER_AGENT'])){
return null;
}
$agent = $_SERVER['HTTP_USER_AGENT'];
if (eregi("MSIE", $agent)){
return true;
}
return false;
}
We can further expand this code to detect other browsers if we know
the various user-agent strings.
For a complete list of this, Wikipedia has an extensive list
Here is a small class that will detect some popular browsers:
class Browser
{
function getPlatform()
{
if (!isset($_SERVER['HTTP_USER_AGENT'])){
return null;
}
$agent = $_SERVER['HTTP_USER_AGENT'];
if (eregi("win", $agent)){
return "Windows";
}
if (eregi("mac", $agent)){
return "Mac";
}
if (eregi("linux", $agent)){
return "Linux";
}
return "Unknown";
}
function isFirefox()
{
if (!isset($_SERVER['HTTP_USER_AGENT'])){
return null;
}
$agent = $_SERVER['HTTP_USER_AGENT'];
if (eregi("Firefox", $agent)){
return true;
}
return false;
}
function isExplorer()
{
if (!isset($_SERVER['HTTP_USER_AGENT'])){
return null;
}
$agent = $_SERVER['HTTP_USER_AGENT'];
if (eregi("MSIE", $agent)){
return true;
}
return false;
}
}
?>
So, to check whether the user is using firefox you would write:
if (Browser::isFirefox()){
/* your code goes here */
}
?>
Now you should be able to detect the user's browser using PHP.
This can be useful if you need to switch your style sheet to deal with different browsers.