Here is the code in PHPNuke's counter.php file, it detects the visitors browser:
if((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"]) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])))) $browser = "Netscape";
elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot";
else $browser = "Other";
i decided to make my own code, since ive always preferred to code it all myself so i can fully understand it.
are there any things that can be done to the code below to see if it can be made faster or more efficient?
<?
$browsers = array(// start array of different browsers
"bot" => array(
"bot",//start bot array
"Google",
"Slurp",
"Scooter",
"Spider",
"Infoseek"),
"browser" => array(
"MSIE",//start browser array: IE and Konqueror first!
"Konqueror",
"Netscape",
"Lynx",
"Opera",
"WebTV",
"Mozilla")
);
foreach($browsers as $name2 => $value2) {
foreach($value2 as $name => $value) {
if((strpos($_SERVER['HTTP_USER_AGENT'],$value)) !== FALSE) {//check for browser ID within http_user_agent, get rid of False ones
$currentbrowser = $value;
break;//stop loop to save time and get rid of fakers
} else {//current browser is not in the list, so set it to Other
$currentbrowser = "Other";
}
}
}
echo '<br>'.$currentbrowser;
?>
thanks in advance!