Ik ben bezig om een UBB parser te maken voor mijn forum.
Het moet mogelijk zijn om eerder geplaatste berichten te quoten.
Nu wil ik deze berichten graag op de volgende manier parsen:
Het probleem van deze manier van parsen is dat \\1 (dus de poster van het te quoten bericht) maar uit één letter bestaat.
Heb al verschillende mogelijkheden geprobeerd, maar geen enkele met een succesvol resultaat.
Hopelijk dat iemand van jullie mij verder kan helpen met dit probleem!
@JeXuS
Het topic waarna jij me verwees bevat dezelfde vraag, maar geeft ook geen voor mij bruikbaar antwoord op mijn vraag.
Verder heb ik mijn best gedaan om een oplossing voor het probleem te vinden, maar de zoektocht was tevergeefs.
De code die DeviourSoul mij aanbeveelt werkt niet.
Ik krijg de volgende foutmelding:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '(' in................
<?php
error_reporting(E_ALL);
function renderQuotes($text) {
$functionName = __FUNCTION__;
// als het een match is van preg_replace_callback
if(is_array($text)) {
// hier de verwerking van een quote eromheen
return '<blockquote>' . (strlen($text[1]) > 1 ? substr($text[1], 1) . ' schreef:<br />' : '') . $functionName($text[2]) . '</blockquote>';
} else {
// hier heb je directe input, return met preg_replace_callback
return preg_replace_callback('~\[quote(=[^]]+)?]((?:(?R)|.)+?)(?:\[/quote]|$)~si', $functionName, $text);
}
}
echo renderQuotes('[quote]bla[quote=mikeos]bla[/quote]bla[/quote]');
?>