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.
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="" >
*/
?>
Kommentar