phpbar.de logo

Mailinglisten-Archive

[php] Image-Tags durch Variabel austauschen

[php] Image-Tags durch Variabel austauschen

Tim Hildebrandt TConnect at gmx.net
Mit Mar 31 13:11:38 CEST 2004


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