If-Anweisungen mit Array

  • Themenstarter Themenstarter DEDEX7200Pro
  • Beginndatum Beginndatum
D

DEDEX7200Pro

Hallo, ich habe hier folgendes Script geschrieben, der den Browser-Typ anzeigt. Dies ist in Kombination mit einem IP-Counter noch gemacht, aber das ist eher jetzt uninteressant. Ich habe nur eine Frage, und zwar wie fasse ich folgendes zusammen?

PHP:
if ($browser = "Firefox")
{
echo "Sie verwenden derzeit einen Firefox-Browser";
}
if ($browser = "Internet Explorer")
{
echo "Sie verwenden derzeit den Internet Explorer";
}
else
{
echo "Ihr Browser konnte leider nicht erkannt werden";
}

Ich habe es hiermit versucht, aber dann ist die Ausgabe für $browser = Array

PHP:
if ($browser = array("Firefox", "Internet Explorer"))
{
$verwendet = array();
$verwendet[0] = "Firefox-Browser";
$verwendet [1] = "Internet-Explorer"; 
echo "Sie verwenden derzeit den $verwendet";
}
else
{
echo "Ihr Browser konnte leider nicht erkannt werden";
}

Ihr fragt euch bestimmt, wieso ich nicht als echo schreibe echo "Sie verwenden derzeit den $browser"; ; aber $browser enthält leider nicht nur den Browsernamen, deshalb will ich sobald "Browsername" vorkommt des ausgegeben wird, deshalb die if-Strukturierung. Mein erster Code geht auch; aber da ich noch einige Browser vor mir habe, möchte ich nicht einen ewigen Script, sondern nur noch die einzelnen $browser = "x" und $verwendet= "x"; schreiben

Edit: Auch folgendes ging nicht:
PHP:
<?php
$browser = "Mussang";

$array = array();
$array[0] = "Firefox";
$array[1] = "Internet Explorer";

$verwendet = array;
$verwendet[0] = "Firefox";
$verwendet[1] = "Internet Explorer";

if ($browser = $array())
{
echo "Sie verwenden derzeit den $verwendet";
}
else
{
echo "Ihr Browser konnte leider nicht erkannt werden";
}
?>
 
Zuletzt bearbeitet von einem Moderator:
@NoUse4aNick: Das frag ich mich auch.

Ich denke mal das es wohl eine Variable gibt die diesen Wert enthält. Dann könntest du das hier vielleicht nehmen:

PHP:
<?php
$browser = "Internet Explorer";

$browser_ar = array("Firefox", "Internet Explorer", "Avant Browser", "Netscape");

if ($id = array_search($browser, $browser_ar)) {
    echo "ID " .$id;
	echo "<br />";
	echo "Sie verwenden " .$browser_ar[$id];
} else {
	echo "Browser nicht erkannt.";
}

?>

Gruß Thomas
 
Zuletzt bearbeitet:
PHP:
$browser = getenv("HTTP_USER_AGENT");
Ist aber mit vorsicht zu geniessen... manche Firefox sind so eingestellt, dass sie sich als IE ausgeben etc.

Nachtrag:
Im if solltes du mit == vergleichen, nicht mit =, Mit = machst du keinen Vergleich, sondern eine Zuordnung
 
danke, des habe ich vergessen. Ich verstehe den Code von tombe nicht. Was mache ich, wenn den Script auf Anbieter ansetzen will?

Dazu kann man die ISP Auslesen, weiss aber net mehr wie^^ des wäre dann hsi.kabelbw.de oder sowas und dann soll kabelbw raus kommen.

Ich suche eigentlich nach ner Möglichkeit des auf jede If-Anweisung anzuwenden, dass er alle $array verwendet und dann mit $ergebnis alles ersetzt wird.

z.B.

if Florian echo Freund
if Gustav echo unbekannt

aber des halt mit nem array zusammenfassen in eine If-Anweisung, damit ich alle Freunde/Feinde + Echos in ner externen Datei speichern kann
 
Irgendwie versteh ich nicht wirklich was du willst...

Du hast ein Array mit Werten drinn
array(Florian, Gustav, Hans)

Und mit was soll das jetzt verglichen werden? Mit einem 2ten Array oder mit festen Werten?
 
ich will eine If-Anweisung in der steht, dass wenn x = 1 ist der wert y = hallo ist und wenn x = 2 ist der wert y = tschüss heisst, ..., aber alles nur in einer if-anweisung

Code:
if (x = "1 oder 2") {
echo y = "Hallo oder Tschüss";
}
else (x = "leer"{
echo y = "";
}

Also je nachdem welche aussage des ist und ich würde dann gerne alle X-werte in der Datei x.php und alle y-Antworten in der y.php haben. Es soll aber nicht sein, dass wenn x = 1 ist y = Tschüss ist^^
 
Zuletzt bearbeitet von einem Moderator:
PHP:
if ($x == "1" || $x=="2") {
   if($x == "1") {
      echo "Hallo";
    }
    else {
        echo "Tschüss...";
     }
}
else {
     echo "";
}

Verstehe zwar nicht warum du ein leeres Echo dann ausgeben willst, sollte aber so funktionieren (ungetestet).

Mal eine kleine Frage nebenbei: Was ist jetzt eigentlich aus deiner Ursprünglichen Frage geworden?

Edit: Vlt versuchst du es mal mit einer Switch Case abfrage? würde in diesem falle ein wenig leichter zu lesen sein
 
Zuletzt bearbeitet:
Mit array_funktionen...
PHP:
$xList = array(1, 3);
$yList = array('null', 'eins', 'zwei', 'drei');

$xAsKeys = array_flip($xList);
$result = array_intersect_key($yList, $xAsKeys);
foreach($result as $x => $y){
    echo $x. " ". $y."<br />";
}

Ausgabe:
Code:
1 eins
3 drei
 
PHP:
<?php
$browser = "Internet Explorer";

$array = array();
$array[0] = "Firefox";
$array[1] = "Internet Explorer";

if ($browser = $array[0] or $array[1])
{
$zahl = "Keine Ahnung wie ich hier jetzt auf die 0 oder die 1 kommen soll";
$verwendet = array();
$verwendet[0] = "Firefox";
$verwendet[1] = "Internet Explorer";
echo "Sie verwenden derzeit den " .$verwendet[$zahl];
}
else
{
echo "Ihr Browser konnte leider nicht erkannt werden";
}
?>

Hab mein Problem hingeschrieben^^ Ich schau mir mal eure Lösungen an, da ich bei mir ja nicht auf $zahl = die passende zahl komme^^
 
Zurück