Der e-modifier ist dein Freund.
Gruss
Jan
Hallo zusammen,
ich habe in der Variablen einen Quellcode liegen, der etwas enthält wie
Dies würde ich gerne umsetzten in ein Bild. Die "12" repräsentiert dabei eine ID des Bildes in der Datenbank (dort sind auch titel etc. hinterlegt).Code:[IMG=12][/IMG]
In der Klasse bild habe ich eine Methode getBild($bildID) die mir zu einer BildID den HTML-Code für ein bild liefert also:
Um nun automatisiert den "PseudoBBCode" oben zu übersetzten wollte ich folgenden PHP-Code nehmen:Code:<img src="meinbild.gif" alt="Mein titel" />
Das scheint aber an dem $1 zu happern. Aber ich verstehe nicht warum. Den sowas wie:Code:$quellcode = preg_replace("/\[img=(.*?)\](.*?)\[\/img\]/", bild::getBild($1), $quellcode);
funktioniert ja auchCode:$text = preg_replace("/\[img=(.*?)\](.*?)\[\/img\]/", "<img src=\"$1\" alt=\"$2\" />", $text);
Grüße
Jan
Der e-modifier ist dein Freund.
Gruss
Jan
Habs jetzt zwar nur schnell überflogen, aber würds nicht gehen, wenn du
das einfach so löst, dass du vor dem preg_replace eine variable setzt, die deine funktion aufruft und dann einfach diese Variable einfügst (natürlich dabei die Sonderzeichen mit Backslashes versehen)?
"Auch wer regelmäßig zu spät kommt, hat eine gewisse Zuverlässigkeit aufzuweisen"
stuckMojo glänzt mal wieder mit regex kenntnissen und ich hab was dazu gelernt ;-) danke
Die lösung lautet:
Code:$quellcode = preg_replace("/\[IMG=(.*?)\](.*?)\[\/IMG\]/e", "''.bild::getBild('\\1','\\2').''", $quellcode);
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)