Browser-Weiche mit PHP

Tags: | |

Da es immer wieder Bugs in Browsern gibt (wir wollen jetzt nicht zu auffällig nach Redmond schielen), ist es manchmal nötig, den verschiedenen Browsern unterschiedliche Daten zu liefern, um Bug´s und nicht standart-konformes Verhalten umgehen zu können.

Innerhalb von PHP kann man das (bedingt) durch einen Browser-Weiche realisieren.

Nachteil der Methode: Nicht alle Browser identifizieren sich korrekt (einige Browser bieten die Option an, sich anders/ gar nicht zu identifizieren), aber bei dem oben erwähnten Browser sollte es eigentlich passen:

<?php
function getbrowser()
{
  if (strstr($_SERVER['HTTP_USER_AGENT'],'Firefox'))
     $brower=ereg_replace(".+(.+rv:.+).+Firefox/(.*)","Firefox \1",$_SERVER['HTTP_USER_AGENT']);
  elseif (strstr($_SERVER['HTTP_USER_AGENT'],'Opera'))    {
     $brower=ereg_replace(".+(.+) (Opera |v){0,1}([0-9,.]+)[^0-9]*","Opera \2",$_SERVER['HTTP_USER_AGENT']);
     if(ereg('^Opera/.*',$_SERVER['HTTP_USER_AGENT'])){
     $brower=ereg_replace("Opera/([0-9,.]+).*","Opera \1",$_SERVER['HTTP_USER_AGENT']);    }}
  elseif (strstr($_SERVER['HTTP_USER_AGENT'],'Mozilla'))
     $brower=ereg_replace(".+(.+rv:([0-9,.]+).+","Mozilla \1",$_SERVER['HTTP_USER_AGENT']);
  elseif (strstr($_SERVER['HTTP_USER_AGENT'],'MSIE'))
     $brower=ereg_replace(".+(.+MSIE ([0-9,.]+).+","Internet Explorer \1",$_SERVER['HTTP_USER_AGENT']);
  else
     $brower=$_SERVER['HTTP_USER_AGENT'];
  return $brower;
}
?>

Das Ergebnis steht Ihnen mit echo getbrowser(); zur Verfügung.

Ein Kommentar zu “Browser-Weiche mit PHP”

  1. Sven meint:

    Das sieht schon mal ganz gut aus, bin mir aber noch nicht ganz sicher, ob ich das für meine Zwecke benutzen kann, deswegen jetzt noch einmal meine Nachfrage. Ich nutze für eine Seite von mir derzeit noch eine Java-Script um die verschiedenen CSS-Styles zu laden.

    if(navigator.appName=="Netscape")
    document.write('<link rel="stylesheet" href="style.css">')
    else
    document.write('</link><link rel="stylesheet" href="style-ie.css">')
    //-->
    
    </link>

    Nun gibt es ja einige Leute, die Javascript im Browser deaktiveren, weshalb ich mir dachte, dass ganze mit PHP umzusetzen. Wenn ich die obige Browserweiche nehme und dann mit einer IF-Else-Schleife den verschiedenen Browsern die verschiedenen CSS-Dateien zuordne, dann müsste das doch gehen, oder?

Hinterlassen Sie einen Kommentar

Text-Formatierung: Sie können diese XHTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> benutzen.

Comments links could be nofollow free.