To be honest browscap is a bit of a pain .. it's never up to date enough because it tries to match the user agent too closely. Try the following logic for browser and version:
(sorry it's in tcl not PHP!)
browser and version
switch -glob $useragent {
"*MSIE 1.*" - "Microsoft Internet Explorer/4.*" {
set browser "IE"
set version 1
}
"*MSIE 2.*" - "Mozilla/2.0 (compatible; AOL 3.*" {
set browser "IE"
set version 2
}
"*MSIE 3.*" - "Mozilla/2.0 (compatible; NEWT ActiveX;*" - "*MS FrontPage 2.*" {
set browser "IE"
set version 3
}
"*MSIE 4.*" - "*MS FrontPage 3.*" {
set browser "IE"
set version 4
}
"*MSIE 5.*" {
set browser "IE"
set version 5
}
"*MSIE 6.*" {
set browser "IE"
set version 6
}
"*MSPIE 1.*" {
set browser "PIE"
set version 1
}
"*MSPIE 2.*" {
set browser "PIE"
set version 2
}
"Mozilla/2.01 (Compatible) Oracle(tm) PowerBrowser(tm)/1.*" {
set browser "Oracle Power Browser"
set version 1
}
"IWENG/1.2.003*" - "aolbrowser/1.1 InterCon-Web-Library/1.2*" {
set browser "AOL16"
set version 1
}
"Mozilla/2.0 (Compatible; AOL-IWENG 3.*" {
set browser "AOL16"
set version 3
}
"Lynx/2.* libwww-*" {
set browser "Lynx"
set version 2
}
"libwww-perl/*" {
set browser "Lynx"
set version ""
}
"NCSA Mosaic/1.*" {
set browser "NCSA Mosaic"
set version "1"
}
"NCSA Mosaic/2.*" {
set browser "NCSA Mosaic"
set version "2"
}
"NCSA Mosaic/3.*" {
set browser "NCSA Mosaic"
set version "3"
}
"*Opera/3.*" - "*Opera 3.*" {
set browser "Opera"
set version 3
}
"*Opera/4.*" - "*Opera 4.*" {
set browser "Opera"
set version 4
}
"*Opera/5.*" - "*Opera 5.*" {
set browser "Opera"
set version 5
}
"*Opera/6.*" - "*Opera 6.*" {
set browser "Opera"
set version 6
}
"PRODIGY-WB/3.*" {
set browser "Prodigy Classic"
set version 3
}
"HotJava/1.*" - "JDK/1.1.*" {
set browser "HotJava"
set version 1
}
"*Konqueror/1.*" {
set browser "Konqueror"
set version 1
}
"*Konqueror/2.*" {
set browser "Konqueror"
set version 2
}
"*Konqueror/3.*" {
set browser "Konqueror"
set version 3
}
"*StarOffice/5.*" {
set browser "StarOffice"
set version 5
}
"*StarOffice/6.*" {
set browser "StarOffice"
set version 6
}
"Mozilla/1.*" {
set browser "Netscape"
set version 1
}
"Mozilla/2.*" {
set browser "Netscape"
set version 2
}
"Mozilla/3.*" {
set browser "Netscape"
set version 3
}
"Mozilla/4.*" {
set browser "Netscape"
set version 4
}
"Mozilla/5.*" {
set browser "Netscape"
set version 6
}
}
platform
switch -glob $useragent {
"Win32" - "Win 32" - "Windows 95/NT" {
set platform "Win32"
}
"Windows CE" {
set platform "WinCE"
}
"Windows 95" - "Win95" - "32bit" - "Windows x86" {
set platform "Win95"
}
"Windows 98" - "Win98" {
set platform "Win98"
}
"Windows NT 5.0" {
set platform "Win2K"
}
"Windows NT" - "WinNT" {
set platform "WinNT"
}
"Windows 3.1" - "Win16" - "16bit" - "windows 3.1" {
set platform "Win31"
}
"Mac_68000" - "Mac_68K" - "Macintosh68K" {
set platform "Mac68K"
}
"Mac_PowerPC" - "Mac_PPC" - "MacintoshPPC" {
set platform "MacPPC"
}
"X11" - "Linux" {
set platform "UNIX"
}
"OS/2" {
set platform "OS2"
}
"WebTV" {
set platform "WebTV"
}
default {
set platform "Unknown"
}
}