slogan

Open Search - Einbindung von time4joomla in das Suchenfeld des Browsers - und so funktioniert es: Open Search

PHP Browserweiche

Es gibt spezielle CSS-Angaben für bestimmte Browser. Meistens dienen diese jedoch um Anweisungen für ältere, meist Internet Explorer betreffend, festzulegen. Schwieriger wird es, wenn man beispielsweise mit relativen Positionierungen arbeitet. Dann stellt man schnell fest, dass viele Browser sehr unterschiedlich reagieren. Eine Möglichkeit das im Code abzufangen ist nachfolgende Browserweiche, die direkt in die index.php des Templates geschrieben werden kann:

<?PHP
/*mit $HTTP_USER_AGENT wird der verwendete Browser ausgelesen,
danach wird mit eregi in dem ausgelesenen String der Browsern gesucht */

if(eregi("opera",$_SERVER['HTTP_USER_AGENT']))
{
echo "Browser: Opera";
}
elseif(eregi("firefox",$_SERVER['HTTP_USER_AGENT']))
{
echo "Browser: Firefox";
}
elseif(eregi("phoenix",$_SERVER['HTTP_USER_AGENT']))
{
echo "Browser: Phoenix";
}
elseif(eregi("msie",$_SERVER['HTTP_USER_AGENT']))
{
echo "Browser: Internet Explorer";
}
else
{
echo "Es wird ein anderer Browser verwendet";
}
?>

Ein konkretes Beispiel, welches ich mal benutzt habe:

<!-- Beginn Browserweiche > 
<?php 
if(eregi("firefox",$_SERVER['HTTP_USER_AGENT'])){ 
echo '<div id="sprache_ff"><jdoc:include type="modules" name="top_rechts" />
</div>';
} elseif((eregi("opera",$_SERVER['HTTP_USER_AGENT'])) || 
(eregi("msie",$_SERVER['HTTP_USER_AGENT']))) { 
echo '<div id="sprache_ie"><jdoc:include type="modules" name="top_rechts" />
</div>';
} else {
echo '<div id="sprache"><jdoc:include type="modules" name="top_rechts" />
</div>';
}
?>
<! Ende Browserweiche > 

 

In der template.css müssen dann natürlich die verschiedenen CSS-IDs definiert werden:

div#sprache_ie {
position:relative;
left:867px;
top:-26px;
width:40px;
}

div#sprache_ff {
position:relative;
left:768px;
top:60px;
width:40px;
}

div#sprache {
position:relative;
left:767px;
top:60px;
width:40px;
}

 

Ich musste hier das Kommentieren leider schließen, weil sich die Spammer dieser Welt auf diesen einen Beitrag eingeschossen haben und mir täglich meist mehrere Spams geschickt haben.

 

  • AllOnline

    Geschrieben am 2009-10-30 08:22:03

    Schöne Sache,
    aber wie untescheidet man in den einzelnen FireFox-Versionen?

    Ist immer MZ 5.0 aber FireFoxVersionen fallen hinten runter?

    Auf Kommentar antworten

  • Axel Tüting

    Geschrieben am 2009-10-30 11:19:52

    Hast du denn Probleme mit einer bestimmten Version? Ansich sind die FF-Versionen nicht wichtig, dass man sie einzeln abfangen müsste. Kannst du mal konkreteres berichten?

    Axel

    Auf Kommentar antworten

  • Ana

    Geschrieben am 2010-01-28 13:53:53

    Hallo,

    ich habe das Script in meine index.php auch mal eingebaut, aber jetzt wrd mir auf der Seite in der ersten zeile dies angezeigt:

    Browser: FirefoxEs wird ein anderer Browser verwendet

    Wie bekomme ich das denn weg?
    Ich öffne die Seite doch mit Firefox.

    Gruss Ana

    Auf Kommentar antworten

    • Axel Tüting

      Geschrieben am 2010-01-28 15:15:51

      Hallo Ana,

      das ist lediglich die "echo"-Ausgabe. "echo" ist eine PHP-Anweisung für eine Bildschirmausgabe. Wenn du das obige Skript so eingebaut hast, dann wurde ordnungsgemäß erkannt, dass du den Firefox benutzt. Lediglich die "else-Anweisung" wurde auch noch abgearbeitet und der Text entsprechend ausgegeben. Was mich zwar etwa wundert, aber dennoch erstmal noch kein Grund zur Panik ist. ;-)


      Axel

      Auf Kommentar antworten

  • Eckard

    Geschrieben am 2010-04-14 16:13:41

    Im oberen Beispiel muß die Zeile

    if(eregi("msie",$_SERVER['HTTP_USER_AGENT']))

    stattdessen lauten

    elseif(eregi("msie",$_SERVER['HTTP_USER_AGENT']))

    Dann klappts auch mit Firefox

    Auf Kommentar antworten

    • time4mambo

      Geschrieben am 2010-04-14 16:17:27

      Stimmt. Jetzt, wo du es sagst, sehe ich es auch.
      Danke fürs Draufaufmerksammachen! :-)


      ... Code korrigiert ...

      Auf Kommentar antworten

  • askme

    Geschrieben am 2010-07-20 15:48:36

    Resurcenschonender gehts so ...

    if(getUserBrowser()=="msie"){...}

    function getUserBrowser()
    {
    $array=array("opera","firefox","phoenix","msie");
    foreach($array as $bkey => $bvalue)
    {
    if(eregi($bvalue,$_SERVER['HTTP_USER_AGENT']))
    {
    return $bvalue;
    }
    }
    return null;
    }

    Auf Kommentar antworten

  • Patrick Loibl

    Geschrieben am 2010-09-02 15:44:02

    Klasse genau das was ich gesucht habe !!! DANKE !! :-)

    Auf Kommentar antworten

  • foxy

    Geschrieben am 2010-09-26 11:26:58

    Hallo,
    klasse Script wirklich! (Fast) genau was ich suchte.

    Ist alles drin, nur wärs auch schick, wenn man die genaue Version von Firefox ansprechen könnte, denn z.B. kann Firefox ja erst ab der Version 3.6 multiple Backgrounds. Alles drunter zeigt dann einfach nix an, genau wie IE bis Version 8. Ab Version 9 kann der IE ja Gott sei Dank einige CSS3-Befehle.

    Bei IE hab ich schon Versionierungen in CSS-Browserweichen gesehen, aber für Firefox hab ich leider nix gefunden. Und in PHP-Browserweichen auch leider nichts, also weder IE noch Firefox. Geht das denn auch? Und wenn ja, wie?

    Auf Kommentar antworten

  • pyretta

    Geschrieben am 2010-10-03 01:34:19

    oh shit das hat meinen code gestrichen :eek:

    dann eben so...

    erstmal die Funktion:
    function agent()
    {
    $agents=array(
    'FF3.5'=>'Firefox/3.5',
    'IE8'=>'^Mozilla/4\.0 \(compatible; MSIE 8\.0',
    );
    foreach($agents as $k=>$v)
    {
    if(preg_match('@'.$v.'@i',$_SERVER['HTTP_USER_AGENT']))return $k;
    }
    }

    Unter $agents=array kannst du nach Wunsch auch noch mehr Browser aufführen.

    Dann sagst du dem Kerlchen was er damit anstellen soll:

    $browser = agent();

    if ($browser == "FF3.5"){echo '';}
    elseif ($browser == "IE8"){echo '';}

    Dann kannst du diverse Module/Komponenten laden (bei Modulen die "countModules" Funktion nicht vergessen, deshalb auch mein Rad das DIV außerhalb der PHP-Deklaration zu schließen:

    Auf Kommentar antworten

  • pyretta

    Geschrieben am 2010-10-03 01:36:20

    das gibts nich :o sorry hat wieder die hälfte gestrichen ... hinter echo kommt dann natürlich dein DIV-Tag in den du die Inhalte reinpackst :o





Suchen Sie einen Webhoster? time4joomla empfiehlt: www.Joomlahosting.de
Joomla ist ein freies CMS - Webdesign, Programming and Content by time4mambo
PR nur für diese Seite: SEO Tools

nach oben scrollen

www.time4joomla.de is not affiliated with or endorsed by the Joomla! Project or Open Source Matters. The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.