Avatar billede terkel-g Nybegynder
22. marts 2007 - 21:29 Der er 9 kommentarer

Php User agent

Hej alle eksperter!
Jeg vil gerne lave en lille boks til min hjemmeside hvor en bruger kan se nogle informationer om sin computer/browser.. kan godt php men fatter bare ikke hvordan HTTP_USER_AGENT virker (hvis det er den function man skal bruge..
Avatar billede radion Nybegynder
22. marts 2007 - 22:16 #2
du bruger den predefinerede variabel $_SERVER

med den kan du på det link, jeg sendte før, se, hvilke informationer du kan få fat i

hvis du gerne vil vise browser info kan du fx

<?
echo $_SERVER['HTTP_USER_AGENT'];
?>
Avatar billede terkel-g Nybegynder
23. marts 2007 - 14:23 #3
Tak Radio.. men kan man ikke stille det lidt pænere op fx
Browser: Firefox
System: Windows xp

o.s.v
Avatar billede radion Nybegynder
23. marts 2007 - 17:29 #4
jo, det kan du godt, men, så skal du jo bare ind og dissikere i den output streng du får.. finde ud af om det er en gecko, hvis det er det, så skal der skrives "firefox" osv osv
Avatar billede terkel-g Nybegynder
23. marts 2007 - 17:32 #5
Radion kan du ikke lige skrive et svar så jeg kan give dig point
Avatar billede radion Nybegynder
23. marts 2007 - 17:51 #6
hep.

fandt lige en funktion til dig.. den bestemmer primært browser, men, det kan være den kan hjælpe dig :)



function browser_detection( $which_test )
{
    /* sample:

$a_browser_data = browser_detection('full');
if ( $a_browser_data[0] !== 'msie' )
{
    execute the non msie conditions
}
else// if it is msie, that is
{
    if ( $a_browser_data[1] >= 5 )
    {
        execute the ie stuff
    }
}
*/
    // initialize variables
    $browser_name = '';
    $browser_number = '';
    // get userAgent string
    $browser_user_agent = ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) ? strtolower( $_SERVER['HTTP_USER_AGENT'] ) : '';
    //pack browser array
    // values [0]= user agent identifier, lowercase, [1] = dom browser, [2] = shorthand for browser,
    $a_browser_types[] = array('opera', true, 'op' );
    $a_browser_types[] = array('msie', true, 'ie' );
    $a_browser_types[] = array('konqueror', true, 'konq' );
    $a_browser_types[] = array('safari', true, 'saf' );
    $a_browser_types[] = array('gecko', true, 'moz' );
    $a_browser_types[] = array('mozilla/4', false, 'ns4' );

    for ($i = 0; $i < count($a_browser_types); $i++)
    {
        $s_browser = $a_browser_types[$i][0];
        $b_dom = $a_browser_types[$i][1];
        $browser_name = $a_browser_types[$i][2];
        // if the string identifier is found in the string
        if (stristr($browser_user_agent, $s_browser))
        {
            // we are in this case actually searching for the 'rv' string, not the gecko string
            // this test will fail on Galeon, since it has no rv number. You can change this to
            // searching for 'gecko' if you want, that will return the release date of the browser
            if ( $browser_name == 'moz' )
            {
                $s_browser = 'rv';
            }
            $browser_number = browser_version( $browser_user_agent, $s_browser );
            break;
        }
    }
    // which variable to return
    if ( $which_test == 'browser' )
    {
        return $browser_name;
    }
    elseif ( $which_test == 'number' )
    {
        return $browser_number;
    }

    /* this returns both values, then you only have to call the function once, and get
    the information from the variable you have put it into when you called the function */
    elseif ( $which_test == 'full' )
    {
        $a_browser_info = array( $browser_name, $browser_number );
        return $a_browser_info;
    }
}

// function returns browser number or gecko rv number
// this function is called by above function, no need to mess with it unless you want to add more features
function browser_version( $browser_user_agent, $search_string )
{
    $string_length = 8;// this is the maximum  length to search for a version number
    //initialize browser number, will return '' if not found
    $browser_number = '';

    // which parameter is calling it determines what is returned
    $start_pos = strpos( $browser_user_agent, $search_string );
   
    // start the substring slice 1 space after the search string
    $start_pos += strlen( $search_string ) + 1;
   
    // slice out the largest piece that is numeric, going down to zero, if zero, function returns ''.
    for ( $i = $string_length; $i > 0 ; $i-- )
    {
        // is numeric makes sure that the whole substring is a number
        if ( is_numeric( substr( $browser_user_agent, $start_pos, $i ) ) )
        {
            $browser_number = substr( $browser_user_agent, $start_pos, $i );
            break;
        }
    }
    return $browser_number;
}
Avatar billede radion Nybegynder
23. marts 2007 - 17:51 #7
og svar
Avatar billede terkel-g Nybegynder
23. marts 2007 - 18:04 #8
Hey mange tak scriptet! fedt
Avatar billede terkel-g Nybegynder
23. marts 2007 - 18:09 #9
ups taste fejl*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester