Hallo!
Ich möcht bei meinem CMS BBCode verwenden. Ich habe ein eingabefeld und dazu auch noch 5 upload-felder für Bilder. Jedes uploadfeld hat eine Image ID z.B.: Feld 1 ID=0, Feld 2 ID=1...
Jetzt möchte ich, dass der User die Bilder mit folgender Anweisung inkludieren kann. [IMG 1pos=right]alt-name[/IMG]
Zum testen habe ich mir mal ein kleinen script geschrieben.
Das Suchmuster passt auch soweit, also ich bekomme die einzelnen Teile in einem Array zurück (mit preg_match_all) allerdings check ich nicht ganz, wie das jetzt auf preg_replace() anwenden muss, da ich ja ein 2dimensionales Array habe. Ich habe schon einige Tutorials durchgelesen, bin aber noch nicht schlauer geworden was das ersetzen von 2dimensionalen Arrays angeht.
PHP-Code:
<?php
$text ="Das hier ist der Text. hier das bild 1 [IMG 1pos=left]bild[/IMG] hier ein weiteres
Bild [IMG 2pos=right]bild[/IMG] und da noch eins[IMG 3pos=left]bild[/IMG]";
$muster = "@(\[IMG )(\d{1,2})pos=(left|right)]([\w ]+)(\[/IMG])@";
preg_match_all($muster,$text,$erg);
echo "<br>";
echo $erg[1][0]."<br>"; #[IMG -> <img src='
echo $erg[2][0]."<br>"; # 1 -> $bild_url[] z.b: www.syz.com/asdf.jpg
echo $erg[3][0]."<br>"; # left -> ' style='float:left'
echo $erg[4][0]."<br>"; # bild -> alt='bild'
echo $erg[5][0]."<br>"; # [/IMG] -> >
$ersatz[1][] = "<img src='";
$ersatz[2][] = "bild.jpg";
$ersatz[3][] = "style='float:".$ersatz[3][]."'";
$ersatz[4][] = " alt='".$ersatz[4][]."'";
$ersatz[5][] = ">";
echo $neuer_text= preg_replace($muster,$ersatz,$text);
/*
<img src="" alt="" >
*/
?>