PX : code

HTTP_USER_AGENT pars by Chris Mospaw
Download this code


<?
    /***************************************************************/
    /*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>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.