You are not logged in.

  • Login

1

Wednesday, November 3rd 2010, 8:53pm

preg_replace in PHP, span Element

Hi,
hab mal wieder ein Problem mit preg_replace:
Ich habe einen Text, in der Var $text gespeichert.
Die wurde vorher schon per strip_tags bereinigt.
Jetzt will ich aber bestimmte <span>-Tags wieder "zum Leben erwecken".
Ich hab also z.B.:

Source code

1
2
3
4
<span class="php"><?php
echo "Hi";
?>
</span> 

als

Source code

1
2
3
4
&lt;span class=&quot;php&quot;&gt;&lt;?php
echo &quot;Hi&quot;;
?&gt;
&lt;/span&gt;

in der Variable.
Ich will jetzt per preg_replace schaffen, dass der Code oben zu dem wird:

Source code

1
2
3
4
5
<pre class="brush: php">
&lt;?php
echo &quot;Hi&quot;;
?&gt;
</pre>


Das sollte ja eigentlich mit dem Muster

Source code

1
/&lt;span class=&quot;(.*)&quot;&gt(.*)&lt;\/span&gt;

gehen. Das klappt aber nicht. Was mache ich falsch?

2

Thursday, November 4th 2010, 7:19am

Man sollte wirklich vermeiden Entities in der Datenbank zu speichern. Das macht nur als Cache Sinn.
Ansonsten sind Code Highlighter nicht ganz so trivial - was passiert denn, wenn du ein "</span>" in deinem gehighlighteten PHP Code hast?

Geht es um BBCodes? Dann solltest du den bbcode in der Datenbank speichern und darauf deine BBCode Engine anwenden. Aber keinesfalls solltest du das mit der Ausgabe vermischen.
Datenhaltung != Datenausgabe

Im Forum wird übrigens der genshi Syntax Highlighter genutzt.
Lg

3

Thursday, November 4th 2010, 7:52am

Hm, ich bin noch nicht besonders in TinyMCE eingearbeitet, deswegen bekomme ichs leider nur hin, <span class="Sprache">Text</span>, für Code-Teile zu machen. Danke für die Info's, ich werde versuchen, mich daran zu halten ;).
Ist der Foreneditor denn selbst programmiert?

4

Thursday, November 4th 2010, 6:18pm

nein, der ist im Woltlab Framework enthalten und unter LGPL lizenziert.
Ich schätze aber es ist auch nicht ganz so einfach ihn zu extrahieren.
Lg

5

Friday, November 5th 2010, 11:48am

Schade, naja, dann muss ich die BBCodes wohl noch ein wenig zurückstellen ;)

Similar threads

Social bookmarks