home *** CD-ROM | disk | FTP | other *** search
Wrap
HTTP_USER_AGENT pars A slightly modified version of the "Cloaking Variables" written by Leon Atkinson. It now properly parses for Netscape Navigator, Internet Explorer AND Opera (rather popular in Europe and a good "base-line" browser). The original code says it's 2.0 compatible, but I have only tested it in PHP 3.0. <? /***************************************************************/ /*Code: PHP 2 */ /*Author: Leon Atkinson <leon@clearink.com> */ /***************************************************************/ /* Get the name the browser calls itself and what version */ $Browser_Name = strtok($HTTP_USER_AGENT, "/"); $Browser_Version = strtok( " "); /* MSIE lies about its name */ if(ereg( "MSIE", $HTTP_USER_AGENT)) { $Browser_Name = "MSIE"; $Browser_Version = strtok( "MSIE"); $Browser_Version = strtok( " "); $Browser_Version = strtok( ";"); } /* Opera isn't completely honest, either ... */ /* Modificaton by Chris Mospaw <mospaw@polk-county.com> */ if(ereg( "Opera", $HTTP_USER_AGENT)) { $Browser_Name = "Opera"; $Browser_Version = strtok( "Opera"); $Browser_Version = strtok( "/"); $Browser_Version = strtok( ";"); } /* try to figure out what platform, windows or mac */ $Browser_Platform = "unknown"; if(ereg( "Windows",$HTTP_USER_AGENT) || ereg( "WinNT",$HTTP_USER_AGENT) || ereg( "Win95",$HTTP_USER_AGENT)) { $Browser_Platform = "Windows"; } if(ereg( "Mac", $HTTP_USER_AGENT)) { $Browser_Platform = "Macintosh"; } /* set the JavaScript and CSS properties */ /* JavaScriptOK means that the browser understands JavaScript on */ /* the same level the Navigator 3 does. Most importantly, it can use */ /* named images. If a browser doesn't do this (Nav 2 or MSIE 3), then */ /* we just assume it can't do any JavaScript. Referencing images by */ /* load order is too hard to maintain. */ /* CSSOK is kind of sketchy in that Nav 4 and MSIE work differently, */ /* but they do seem to have most of the functionality. MSIE 4 for the */ /* Mac has buggy CSS support, so we let it do JavaScript, but no CSS. */ /* Support for UNIX browser could be useful. */ $Browser_JavaScriptOK = 0; $Browser_CSSOK = 0; if(($Browser_Platform == "Windows")) { if($Browser_Name == "Mozilla") { if($Browser_Version >= 3.0) { $Browser_JavaScriptOK = 1; } if($Browser_Version >= 4.0) { $Browser_CSSOK = 1; } } else /* must be MSIE */ { if($Browser_Version >= 4.0) { $Browser_JavaScriptOK = 1; $Browser_CSSOK = 1; } } } else /* must be mac */ { if($Browser_Name == "Mozilla") { if($Browser_Version >= 3.0) { $Browser_JavaScriptOK = 1; } if($Browser_Version >= 4.0) { $Browser_CSSOK = 1; } } else /* must be MSIE */ { if($Browser_Version >= 4.0) { $Browser_JavaScriptOK = 1; } } } ?> <HTML> <BODY> Full $HTTP_USER_AGENT: <? echo $HTTP_USER_AGENT; ?><BR> Browser_Name: <? echo $Browser_Name; ?><BR> Browser_Version: <? echo $Browser_Version; ?><BR> Browser_Platform: <? echo $Browser_Platform; ?><BR> Browser_JavaScriptOK: <? echo $Browser_JavaScriptOK; ?><BR> Browser_CSSOK: <? echo $Browser_CSSOK; ?><BR> </BODY> </HTML>