Mailinglisten-Archive |
Ich schreib mal über dem Quote, weil der eigentlich erledigt ist. Jetzt hab ich ein anderes Problem. Ich hab den ganzen Kram weggeschmissen und gebe dem User jetzt diese Zeile, die er in das Formular kopiert um eine Grafik einzufügen: Beispiel: [img src="http://www.cm-jg-portale.de/ma_image_uploads/1141237890.jpg" alt="Schriftzug Gikan ryu" width="293" height="59" border="0" align="left" /] Der Text wird dann hiermit bearbeitet: $str = ereg_replace('\[img', '<img', $str); $str = ereg_replace(' /]', ' />', $str); $str = ereg_replace('<img src=', '<br clear="all" /><img src=', $str); Ergibt dann: <br clear="all"> <img src="http://www.cm-jg-portale.de/ma_image_uploads/1141237890.jpg" alt="Schriftzug Gikan ryu" align="left" border="0" height="59" width="293"> Funktioniert also tadellos, aaaaber, jetzt krieg ich den hier: $str = htmlspecialchars($str); nicht mehr rein (wobei ich eigentlich sogar htmlentities($str) bräuchte). Völlig egal, wo ich das hinschreibe (davor oder dahinter), es zerlegt mir das komplette Ergebnis. Es kommt dann dieses hier im Source raus (was ja auch logisch ist): <img src="http://www.cm-jg-portale.de/ma_image_uploads/1141237890.jpg" alt="Schriftzug Gikan ryu" width="293" height="59" border="0" align="left" /> Aber ohne die Zeile kann mir ja da jeder reinschreiben, was er Lust hat, incl. jedem Javascript :( Was kann ich denn da machen?? Und eine zweite Frage: In dem String muss zwingend http://www.cm-jg-portale.de/ma_image_uploads/ vorkommen. Es dürfen nur Bilder eingebunden werden, welche auf meinem Server liegen (der User kann diese vorher hochladen). Wie krieg ich das denn hin? Mit freundlichen Grüßen Jörn Grube Joern Grube schrieb: > So ganz langsam dreh ich durch. Ich hab von RegEx wenig (keine) Ahnung, > also hab ich mir was bei http://regexlib.com/ gesucht und versuche das > anzupassen. Das Original sieht so aus: > > $str = preg_replace("/(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])/is", > "<a href=\"\\2\" target=\"_blank\"><IMG SRC=\"\\2\" align=\"center\" > height=\"100\" border=\"0\"></a>",$str); > > Nun brauch ich aber keinen Link sondern nur das Bild, also bin ich jetzt > soweit: > > $str = preg_replace('/(\[[Ii][Mm][Gg]\])(\S+?)(\[\/[Ii][Mm][Gg]\])/is', > '<img src=\"\\2\">', $str); > > Ich hab also z.B. sowas: > [img]http://www.cm-jg-portale.de/ma_image_uploads/1141237907.jpg" > alt="Schriftzug Gyokko ryu" width="278" height="58" border="0"[img] > > und rauskommen soll das hier: > <img src=http://www.cm-jg-portale.de/ma_image_uploads/1141237907.jpg" > alt="Schriftzug Gyokko ryu" width="278" height="58" border="0" /> > > Es kommt aber das hier raus: > [img]http://www.cm-jg-portale.de/ma_image_uploads/1141237890 .jpg\" > alt=\"Schriftzug Gikan ryu\" width=\"293\" height=\"59\" border=\"0\"[img] > > Ich hab ja nichtmal 'ne Ahnung, wo die Backslashes herkommen und vom > gewünschten Ergebnis bin ich ja sowieso noch ewig weit entfernt :( Und > die Backslashes darf es auch nicht geben, wenn ich das Formular erneut > abschicke (es ist eine Vorschau, die mal noch bearbeiten kann), werden > das jedesmal mehr :( > Kann mir da jemand helfen, bitte. > > Mit freundlichen Grüßen Jörn Grube > P.S. Das Original tut übrigens auch nicht, was es soll.
php::bar PHP Wiki - Listenarchive