Archiv verlassen und diese Seite im Standarddesign anzeigen : Explode Problem
Hallo Leute!
der Variable $check[badsites] steht folgendes:
Website1.de;Website2.de;Website3
wie ich die Semikolons entferne, habe ich herausgefunden: Mit explode($check[badsites],";"); Wenn ich jetzt Website 1 haben will, mache ich: $check[badsites][0];
Prob:
Ich habe eine andere Variable namens $host, wie kann ich jetzt eine IF Schleife machen, die folgendes behandelt:
if($host == "irgendeine website von $check[badsites]) { exit; }
Ansatz: Kann man das mit is_array machen?
cYa DuRoX
CannabisCow 09-06-2003, 22:53 Z.B.
for ($i = 0; $i < count($check['badsites']); $i++)
{
if($host == $check['badsites'][$i])
{
echo "d";
exit();
}
}
mrhappiness 09-06-2003, 23:00 $check['badsites']='Website1.de;Website2.de;Website3;';
$check['badsites']=explode(';',$check['badsites']); //array draus machen
if (in_array($host,$check['badsites']))
echo 'gefunden';Ansatzantwort: wie man sieht :)
Hallo mrhappiness & CannabisCow!
@ CannabisCow: Ich habe deine Lösung versucht (explode noch eingefügt), komme aber leider immer wieder zu folgendem Fehler:
Arrayt-online.de
Array
Warning: Bad message number in /XX/check.php on line 88
Warning: Bad message number in /XX/check.php on line 111
Den Code habe ich folgendermaßen modifiziert:
for ($i = 0; $i < count($check['badsites']); $i++)
{
$check['badsites']=explode(';',$check['badsites']); //array draus machen
if($von == $check['badsites'][$i])
{
echo "d";
exit();
}
else { echo $von."<br>".$check[badsites];}
}
@ mrhappiness: Obwohl ich deine Lösung eigentlich bevorzuge, funzt diese gar nicht. Es kommt zu keiner Fehlermeldung - aber leider auch zu keiner Ausgabe von "GEFUNDEN" ;)
Woran könnte das liegen?
cYa DuRoX
Oder gibt es evtl. eine andere Möglichkeit dieses Problem zu lösen?
Ich wäre für jede Hilfe dankbar!
cYa DuRoX
explode wird übrigens so verwendet: explode(";", $check[badsites]);Hier nachzulesen: http://php.net/explode
@ Hopka: Vielen Dank für den Hinweis, aber ich glaube nicht dass es daran liegt / gelegen hat.
cYa DuRoX
hmm, ok, um mal deinen Code zu verwenden:
$check['badsites']=explode(';',$check['badsites']); //array draus machen
for ($i = 0; $i < count($check['badsites']); $i++)
{
if($von == $check['badsites'][$i])
{
echo "d";
exit();
}
else { echo $von."<br>".$check[badsites];}
}
Du musst den Array natürlich machen, bevor du die Anzahl der Elemente von eben diesem Array mit count zählst.
Das Array ist aus einem mysql_fetch_array entstanden, das ist doch ein Array, oder etwa nicht?
cYa DuRoX
mrhappiness 10-06-2003, 21:38 gib das array ma bitte aus mit print_r($check);
aus dem mysql_fetch_array entsteht das Array $check
aber du musst aus aus dem Strin $check['badsites'] noch ein Array mit den einzelnen Elementen machen, die durch ; getrennt sind. Das ist dann ein Unter-Array von $check
Hmm verstehe ich nicht... Etwa so?
array($check['badsites']);
Entsteht das Array net durch den Explode?! Denn da mache ich doch die ; Weg :dontknow:
cYa DuRoX
mysql_fetch_array(....) ergibt ein Array, etwa so:
$ckeck = Array ("key1" => "wert1, "key2 => "wert2", "badsites" => "Website1.de;Website2.de;Website3.de;");
Wenn du dann ein explode(";", $check['badsites']); machst, kommt noch ein Array raus:
$check['badsites'] = Array ("Website1.de", "Website2.de", "Website3.de", "");
also insgesamt etwa so:
$check = Array(
"key1" => "wert1",
"key2" => "wert2",
"badsites" => Array ("Website1.de", "Website2.de", "Website3.de", "")
);
das letzte Element "" im Array $ckeck['badsites'] ist da, weil am Ende ein ; stand, bin mir aber nicht ganz sicher.
Ansprechen kannst du das ganze folgendermaßen:
$check['badsites'][0] = "Website1.de";
$check['badsites'][1] = "Website2.de";
$check['badsites'][2] = "Website3.de";
@ Hopka: Vielen Dank für deine ausführliche Antwort! Das ist dann also ein Array im Array :confused:
Das Problem ist aber nicht manuell auf die Website zuzugreifen, sondern ein weiteres Script ausführen mit exit; zu verhindern, wenn $host == "eine der websites im array" ist.
cYa DuRoX
aha.
und wo genau ist da das problem ?
eine der websites im array in PHP Code zu fassen ;)
schreib am besten mal auf hochdeutsch, was du genau möchtest.
eine der websites im array in PHP Code zu fassen
ich hab keine Ahnung, was du meinst, willst du die Websites kopieren in PHP oder was?
mrhappiness 11-06-2003, 21:29 in_array sollte auf jeden fall gehen (so wie oben schongeschrieben)
poste halt mal das array das du durchsuchst (print_r)
@ mrhappiness:
Danke für deine Antwort! Wie gesagt, deine Lösung fand ich auch am elegantesten. Also hier ist die Ausgabe, die print_r($check) ausgibt
Allerdings habe ich die Felder in denen Passwörter und sonstige empfindliche Daten stehen entfernt ;)
Array ( [0] => 1055358122 [lastupdate] => 1055358122 [1] => 1 [dovalidate] => 1 [2] => 0 [interval] => 0 [3] => [badsites] => [4]
Es kommt keine Ausgabe von "Gefunden" :(
cYa DuRoX
@ Hopka: Ich glaube schon, dass ich durchaus in der Lage bin hochdeutsch zu sprechen!
mrhappiness 12-06-2003, 20:47 ich seh da keine seiten, auf die er prüfen könnte? :confused:
Hallo mrhappiness!
Es funzt jetzt mit deiner Lösung! *freu*
Vielen Dank!!! :)
cYa DuRoX
|
|