Gå til innhold

IF nettlesar = Internet Explorer


Anbefalte innlegg

Skulle gjerne hatt ein PHP-kodesnutt som sjekkar om nettlesaren til brukaren er Internet Explorer.

 

Noko ala:

 

if ($browser == "MSIE")
{
    echo "MSIE";
}
else
{
    echo "Ikkje MSIE";
}

 

Spørsmålet er vel eigentleg korleis eg skal finne ut om nettlesaren er MSIE.

 

Takk for svar! :w00t:

Lenke til kommentar
Videoannonse
Annonse

Men husk at både Firefox, Opera og IE gir seg ut for å være MSIE, og at alle nettlesere utgir seg for å være Mozilla.

 

Derfor må du først sjekke om den inneholder strengen "Gecko" (som er unik for Firefox og Mozilla Suite), deretter om den inneholder strengen "Opera" (som er unik for Opera). Om den ikke inneholder noen av dem, men inneholder "MSIE", da er det IE. Hvis ingenting matcher, er det snakk om noe skummelt som du skal holde deg unna. :p

Lenke til kommentar

Nice :)

 

Eigentleg bryr eg meg ikkje om IE-brukarane, men slik som sida vert sjåande ut med dersom ein har med <?xml?> taggen i IE er jo rimeleg stygt.

 

Oppdaga ikkje at sidene vart heilt feil rendra i IE før det hadde gått lange tider. Har (heldigvis) ikkje tilgang på IE i Linux.

 

:w00t:

Lenke til kommentar

Hvis jeg tolker situasjonen riktig så driver du med et script som sender riktig informasjon til riktige nettlesere? (Content-type-headere, XML-deklarasjon)

 

I så fall så har jeg et script jeg har fått som fungerer glimrende til dette formålet. Sjekker etter kompatible nettlesere på flere plan. Test det ut! ;)

 

<?php

$charset = "iso-8859-1";
$mime = "text/html";
$declaration = '<?xml version="1.0" encoding="' . strtoupper($charset) . '"?>'."\r\n";

$fetch = apache_request_headers();

function fix_code($buffer)
{
return str_replace(" />", "/>", $buffer);
}

if(eregi('MSIE[ \/]([0-9\.]+)', $fetch['User-Agent']))
{
if(!stristr($fetch['User-Agent'], 'Opera'))
{
 $declaration = "";
}
}

if(stristr($fetch['Accept'], "application/xhtml+xml"))
{
if(preg_match("/application\/xhtml\+xml;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches))
{
 $xhtml_q = $matches[1];
 if(preg_match("/text\/html;q=0(\.[1-9]+)/i", $fetch['Accept'], $matches))
 {
 	$html_q = $matches[1];
 	if($xhtml_q >= $html_q)
 	{
   $mime = "application/xhtml+xml";
 	}
 }
}
else
{
 $mime = "application/xhtml+xml";
}
}

if($mime == "application/xhtml+xml")
{
ob_start("fix_code");
}

header("Content-Type: $mime; charset=$charset");
header("Vary: Accept");

echo $declaration;

?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...