Christian Seiler: BB-Code Parserklasse von Christian --> einfach nur genial :-)

Beitrag lesen

Hallo Erri,

// Smilies
$bbcode->addParser ('replace_smilie', array ('block',[...]));

Das Problem ist, dass der Text des images nicht in HTML umgesetzt wird, sondern als normaler Text ausgegeben wird.
<img src="../imgs/smilies/icon_smile.gif" alt=":-)">

Liegt es vielleicht an der htmlspecialchars() ?

Ja. Es hängt von der Reihenfolge ab, wie die Parserfunktionen registriert werden. In dieser Reihenfolge werden sie dann ausgfehürt. Beispiel:

$bbcode->addParser ('replace_smilie', ...);
$bbcode->addParser ('htmlspecialchars', ...);

-----------------------
<Hallo> :-)
-----------------------
wird zu:

-----------------------
&lt;Hallo&gt; &lt;img src=&quot;../imgs/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot;&gt;
-----------------------
(Dein Problem)

Lösung:

$bbcode->addParser ('htmlspecialchars', ...);
$bbcode->addParser ('replace_smilie', ...);

Dann wird:

-----------------------
<Hallo> :-)
-----------------------

zu:

-----------------------
&lt;Hallo&gt; <img src="../imgs/smilies/icon_smile.gif" alt=":-)">
-----------------------
(korrekt)

Aber dann dürften ja die anderen Tags (z.B. <b>) auch nicht in HTML umgesetzt werden, oder?

Bei den Tags selbst greifen die Parserfunktionen nicht.

Viele Grüße,
Christian