Mailinglisten-Archive |
Hallo Liste, vielleicht weiß jemand von Euch, warum folgender Fehler entsteht: Ich habe eine kleine CMS-übliche Editierfunktion für HTML-Code, in der es auch möglich ist, Bilder einzupflegen. Diese Bilder sind HTML konform mit der Syntax <img src="bild.jpg" id="12345" border="0" align="left"> formatiert. Die ID eines Bildes repräsentiert den Datenbank-Eintrag in einer SQL Datenbank, zu dem noch weitere Informationen wie z.B. Fotograf, der ALT-Tag etc. gespeichert sind. Um diese Informationen später auf einer Internetseite anders als in der Editierfunktion umzusetzen, möchte ich nun den physikalisch erzeugten <img-Tag durch eine Variable austauschen, die folgende Syntax hat: <!--bild:12345--> Ich druchlaufe beim Speichern meines Textes also alle DB-Einträge mit den dazu gespeicherten Bildern (die jeweilige ID ist ja dann bekannt) und verwende momentan folgenden Code zum Austauschen der Informationen: $bid_var = "<!--bild:" . $bildid . "-->"; $pattern = "/<IMG[^>](.*?)" . $bildid . "(.*)>/siU"; $gesamter_text = preg_replace($pattern, $bid_var, $gesamter_text); Sobald aber die Anzahl der eingefügten Bilder > 1 ist, verschluckt die "preg_replace" Funktion den gesemten Text vom Start des _ersten_ Bildes "<img..." bis zum Ende des _letzten_ Bildes, das ja durch die letzte schließende spitze Klammer repräsentiert wird ">". Aus folgendem Text: <img id="1">Text Text Text [...] Text Text Text Text Text Text <img id="2">Text Text Text Text Text Text Text Text Text Text wird also: <!--bild:2-->Text Text Text Text Text Text Text Text Text Text anstatt wie geplant: <!--bild:1-->Text Text Text [...] Text Text Text Text Text Text <!--bild:2-->Text Text Text Text Text Text Text Text Text Text Hat jemand da eine Idee, wie ich die pattern anpassen muß, so dass ich das korrekte Ergebnis erziele? Ich hab schon stundenlang rumprobiert, aber entweder ist die Pattern total falsch (Fehlerausgabe) oder es geht irgendwie sonst nicht... Über einen Tipp würde ich mich sehr freuen. Grüße Tim
php::bar PHP Wiki - Listenarchive