Hallo,

Ik zit met een probleempje ik wil namelijk dat mijn gebruikers enkele codes kunnen doen (, , , ) deze verander ik dan met de volgende code (denk ik) naar de goede codes:
<?php // $message is dan de tekst.
$message = preg_replace ("#\[b\](.*?)\[\/b\]#", "<strong>\\1</strong>", $message);
$message = preg_replace ("#\[i\](.*?)\[\/i\]#", "<i>\\1</i>", $message);
$message = preg_replace ("#\[u\](.*?)\[\/u\]#", "<u>\\1</u>", $message);
$message = preg_replace ("#\[s\](.*?)\[\/s\]#", "<strike>\\1</strike>", $message);
?>
Maar ik wil dat de gebruikers geen andere dingen kunnen in voeren en daardoor zou ik htmlspecialchars moeten doen maar dan gaat dit toch verloren?
Hoe doe ik dit goed?

Mvg,
Nick
Kan je een beetje toelichten hoe dat werkt?
Ward van der Put op 04/10/2014 10:54:39

Waarom gebruik je niet gewoon de PHP-functies voor BBCode.

Handig, ik kende ze nog niet, maar het zit in de pecl-bundle, lees ik.
Nu lijkt het me dat niet elke hosting het standaard ondersteunt, en dat het altijd los geinstalleerd dient te worden.
BBCode begint uit de mode te raken. Er wordt nu veel gebruik gemaakt van Markdown (of een variant).
Het voordeel is dan het beter werkt dan BBCode op basis van regular expressions. Regex is niet bepaald geschikt voor het parsen van dingen als XML, HTML en BBCode.
Gelukkig bestaan er ook stackbased parsers in PHP. En MarkDown zie ik nog niet veel in opmars.

Reageren