Hendrik: Ohne Speichern in Datenbank LIKE???

Hallo!

Ich möchte, wenn die Besucher meiner Homapage mit Firefox surfen, eine Meldung ausgeben wie:

"Du surfst gerade mit dem besten Browser der Welt, mit Mozilla Firefox!"

Anderfalls eine Meldung wie:

"Hol dir jetzt den besten Browser der Welt: Mozilla Firefox!"

Also muss ich überprüfen, mit welchem Browser der Besucher surft und dann eine entsprechende Meldung ausgeben.

Den Broser überprüfe ich mit:
$_SERVER['HTTP_USER_AGENT']

nun habe ich so etwas probiert:

if ($_SERVER['HTTP_USER_AGENT'] LIKE '%Firefox%') echo "Du surfst mit Firefox!"
else echo "Du surfst nicht mit Firefox";

allerdings klappt so etwas nicht. Wie kann ich also überprüfen, ob in einer Variable ein bestimmtes Wort vorkommt, ohne die Variable in eine Datenbank zu speichern???

Weiß das jemand von euch?

Hendrik

  1. Moin Hendrik,

    if(array_key_exists('HTTP_USER_AGENT',$_SERVER) && strpos($_SERVER['HTTP_USER_AGENT'],'Firefox')!==FALSE){}

    Gruß aus Berlin!
    eddi

    --
    Wer Rechtschreibfehler findet, darf sie behalten.
    1. Diese Version ist um Längen eleganter als meine - nimm besser diese !

      Gruß,

      finerip

    2. Vielen Dank Eddi (oder doch XaraX? Jetzt entscheide dich doch mal!)

      Genau das brauchte ich...
      Wenn die Welt doch immer so einfach wäre!

      Hendrik

      1. Vielen Dank Eddi (oder doch XaraX? Jetzt entscheide dich doch mal!)

        Mach ich. (Mir ist das sowieso zu bunt geworden, jeder Napp ist heute mit dem Nic unterwegs ;(

        Wenn die Welt doch immer so einfach wäre!

        Entschuldige, die Welt ist so einfach!

        Gruß aus Berlin!
        eddi

        --
        Wer Rechtschreibfehler findet, darf sie behalten.
    3. Hallo Freunde des gehobenen Forumsgenusses,

      if(array_key_exists('HTTP_USER_AGENT',$_SERVER) && [link:http://de3.php.net/manual/de/function.strpos.php@title=strpos]($_SERVER['HTTP_USER_AGENT'],'Firefox')!==FALSE){}

      Ich bevorzuge bei solchen Fällen isset($_SERVER['HTTP_USER_AGENT']), hast du für deine Methode einen speziellen Grund? Weist du, ob das exakt identisch ist (ich nehme es an, bin mir aber nicht ganz sicher)?

      Gruß
      Alexander Brock

      1. Hallo,

        Ich bevorzuge bei solchen Fällen isset($_SERVER['HTTP_USER_AGENT']), hast du für deine Methode einen speziellen Grund?

        in machnen Versionen PHPs wird eine Notice ausgegeben. (Habe ich aber bei Version 5.x schon lange nicht mehr beobachtet.)

        Weist du, ob das exakt identisch ist (ich nehme es an, bin mir aber nicht ganz sicher)?

        Es sollte identisch sein.

        Gruß aus Berlin!
        eddi

        --
        Ed is' nischt neuet - ed heißt je'ß' nua anda's
    4. echo $begrüßung;

      if(array_key_exists('HTTP_USER_AGENT',$_SERVER) [...]

      Nur zur Info: array_key_exists('key', $array) braucht circa die dreifache Zeit von isset($array['key'])

      echo "$verabschiedung $name";

      1. Hallo Freunde des gehobenen Forumsgenusses,

        Nur zur Info: array_key_exists('key', $array) braucht circa die dreifache Zeit von isset($array['key'])

        Danke für die Information, aber wie findet man so etwas heraus? Ausprobieren und messen? Oder gibt es da eine Referenz, in der solche Zusammenhänge stehen (mich interessiert das, weil ich inzwischen Software in PHP habe die auch mal 2h rechnet).

        Gruß
        Alexander Brock

        1. Hallo,

          Danke für die Information, aber wie findet man so etwas heraus? Ausprobieren und messen? Oder gibt es da eine Referenz, in der solche Zusammenhänge stehen (mich interessiert das, weil ich inzwischen Software in PHP habe die auch mal 2h rechnet).

          selbst nutze ich ein kleines Script, indem ich Passagen gegeneinander teste. Enstanden ist es  hier.

          Als CLI-Script nutze ich nunmehr folgendes:

            
          #!/opt/php/php  
          <?php  
          $u=$argv[1] ? $argv[1] : 1;  
            
          sleep(1); $start=explode(' ',microtime());  
          $start=$start[1].substr($start[0],-9);  
            
          for($i=0;$i<$u;$i++)  
           {  
           isset($_SERVER['HTTP_USER_AGENT']);  
           }  
            
          $end=explode(' ',microtime());  
          $end=$end[1].substr($end[0],-9);  
          echo 'Test 1 : '.str_pad(($end-$start),16)."\n";  
          sleep(1);  
          $start=explode(' ',microtime());  
          $start=$start[1].substr($start[0],-9);  
            
          for($i=0;$i<$u;$i++)  
           {  
           array_key_exists('HTTP_USER_AGENT',$_SERVER);  
           }  
            
          $end=explode(' ',microtime());  
          $end=$end[1].substr($end[0],-9);  
          echo 'Test 2 : '.str_pad(($end-$start),16)."\n".'Durchlaeufe : '.$u;  
          ?>  
          
          

          Gruß aus Berlin!
          eddi

          --
          Ed is' nischt neuet - ed heißt je'ß' nua anda's
  2. Hi,

    meines Wissens steht in der Variable $_SERVER['HTTP_USER_AGENT'] etwas mehr als einfach nur beispielsweise "Firefox". Soweit ich weiss, steht da nichtmal direkt Firefox, sondern "Mozilla" und danach die Version. Du müsstest also nach der entsprechenden Version von Mozilla suchen. Dazu verwendet man (bei Firefox V1.0.x) am besten den Befehl 'pregmatch'. Die Zeile würde dann ungefähr so aussehen (nagel mich da nicht fest - da kann evtl. auch noch ein Fehler drin sein):

    if (preg_match("/Mozilla/5.0/i",$_SERVER['HTTP_USER_AGENT'])) echo "jetzt ist es Firefox" else "jetzt nicht";

    Probiers mal aus und lies im Notfall mal unter Selfphp nach - da steht das um Ecken qualifizierter drin, als das, was ich jetzt von mir gegeben habe.

    Viele Grüße,

    finerip

  3. Hello,

    "Du surfst gerade mit dem besten Browser der Welt, mit Mozilla Firefox!"
    "Hol dir jetzt den besten Browser der Welt: Mozilla Firefox!"

    Wieso?
    Der beste Browser der Welt ist doch der IE, oder?

    *scnr*
    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau