Ohne Speichern in Datenbank LIKE???
Hendrik
- php
3 XaraX0 finerip0 Hendrik0 Alexander Brock0 Eddi
2 dedlfix0 Alexander Brock0 eddi
0 finerip0 Tom
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
Moin Hendrik,
if(array_key_exists('HTTP_USER_AGENT',$_SERVER) && strpos($_SERVER['HTTP_USER_AGENT'],'Firefox')!==FALSE){}
Gruß aus Berlin!
eddi
Diese Version ist um Längen eleganter als meine - nimm besser diese !
Gruß,
finerip
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
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
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
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
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";
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
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
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
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