dj1985 hat geschrieben:...
einfaches Beispiel für den IMG BBCODE
$ausgabe = preg_replace("/\[img\](.*)\[\/img\]/Usi", "<img src=\\1></img>", $eingabe);
Hier hat wohl jemand nicht aufgepasst.
1. Ist das preg_match nicht gerade geil
2. Gibts es für IMG kein Endtag
3. Validität ist auch net gegeben
4. Hab ich mal gelesen das \\ in Strings manchmal zu falschem escapen führt, weil du in einem String ( "abc" ) eigentlich \\\\1 nehmen müsstest, und es immer besser ist die Zahl zu isolieren.
Besser
- Code: Alles auswählen
<?php
$text = "Ich bin ein Bild [img]http://www.page.de/bild.jpg[/img]";
$text = preg_replace("%\[img\]([-a-zA-Z0-9@:\%_\+,.~#?&//=]+?)\[\/img\]%eUi", "<img src=\"\${1}\" border=\"0\" alt=\"\" title=\"\">", $text);
echo $text;
?>
Fur XHTML müsste man das ganze mit \> schliessen.
Somit ist das ganze dann auch valide und richtig, bzw. die URL zum Bild muss auch durch die Prüfung für URL's (nach alten Standarts, ohne ö,ä,ü usw.)