Hallo zusammen,
ich versuche gerade seit 2 Stunden ein Problem in PHP mit einer FOREACH Schleife und EXPLODE zu lösen, leider vergeblich.
Zuerst einmal zum Skript, es ist ein einfaches News Skript. Es soll mir ermöglichen schnell und einfach Bilder in die News einzufügen, mit Vorschau auf die Bilder. Sobald ich einen Click in der Vorschau auf eines der Bilder mache wird es an der Position in der News eingefügt und in die DB mittels BB Code eingefügt. Das ganze funktioniert auch schon wunderbar, das auslesen der Bilder auch, nur die Position von jedem Bild und der ALT Text nicht.
Die Funktion welche dafür zuständig ist sieht wie folgt aus:
function convert_bb($text) {
$temp = split("\n", $text);
$bb_code[0] = '/([bild])(.*)([/bild])/';
$bild_name[0] = '${2}';
$bild_temp = preg_replace($bb_code, $bild_name, $temp);
foreach ($bild_temp AS $key ){
echo("Foreach key Wert: $key<br>");
$aufsplitten = explode(".", $key);
echo '<pre>';
print_r ($aufsplitten);
echo '</pre>';
echo "<br><br>";
if($aufsplitten[1] == "jpg" || $aufsplitten[1] == "JPG"){
echo("<b>\t Es ist ein jpg!</b><br>");
}
}
echo("<br>");
$sql = "SELECT * FROM bilder
WHERE name = '".$bild_temp[2]."'
";
//echo("$sql<br>");
$bb_replace[0] = '<img src="admin/upload/resize.php?pic=${2}" alt="dies ist ein test">';
$temp2 = preg_replace($bb_code, $bb_replace, $temp);
//echo("<br>preg tmp test: ".$temp2[0]."<br><br>");
$temp2 = implode("\n", $temp2);
return $temp2;
}
Mein Problem liegt im Moment in der Foreach Schleife. Die Ausgabe welche erzeugt wird sieht wie folgt aus:
Foreach key Wert: 01232007_43205.jpg
Array
(
[0] => 01232007_43205
[1] => jpg
)
Foreach key Wert:
Array
(
[0] =>
)
Foreach key Wert: 01232007_43221.JPG
Array
(
[0] => 01232007_43221
[1] => JPG
)
Foreach key Wert:
Array
(
[0] =>
)
Foreach key Wert:
Array
(
[0] =>
)
Im Grunde genommen ist es eigentlich genau das was die Schleife machen soll, er überprüft Zeile für Zeile die News und Filter mir den Bildername raus, zerlegt diesen mittels explode und prüft ob die Endung ein "jpg" ist. Wenn es ein jpg ist, dann soll das Skript eine Ausgabe produzieren, was es aber leider nicht tut.
Mir ist aufgefallen das nur eine Ausgabe produziert wird wenn an der letzten Stelle im Array ein Bild vorhanden ist, aber nur dann.
Weiss eventuell jemand warum die if Abfrage in der Foreach Schleife nicht greift, obwohl im Array an der Stelle das jpg vorhanden ist?
Danke und Gruß,
cr_man