Ik heb dus in mijn database een tekst zitten
bv

Dit is een bericht


Dit is een reactie op bovenstaand bericht

ik gebruik deze regular expression om de quote tags te verwijderen:
<?php
$bericht = preg_replace("#\[quote\](.+?)\[/quote\]#si","<div class = \"quotecomment\">lalalallalala</div>", $bericht);
?>

Hoe kan ik er nu voor zorgen dat ik uit mijn $bericht alleen de tekst tot aan de laatste [/quote] tag krijg?

<?php
$bericht = preg_replace("#\[quote\](.+?)\[/quote\]#si","<div class = \"quotecomment\">$1</div>", $bericht);
?>
Waar jij alalalal hebt staan moet je iets met $1 gaan doen. Zoals hierboven.
Geen idee of dit werkt.
da weet ik... daarom dat ik vraag als ik alles tot en met de laatste [/quote] tag uit mijn bericht kan halen
@Robin

Je bent eruit geraakt, hoe heb je dat nu gedaan?? :)
ik heb mijn width op auto gezet, zodat de quote de opmaak van mijn site niet kan verpesten.

<?php
$bericht = preg_replace("#\[quote\]#si","<div class = \"quotecomment\">", $bericht);
$bericht = preg_replace("#\[/quote\]#si","</div>", $bericht);
?>

zo heb ik het gedaan
@Robin

Als ik zo meer
neerzet dan
worden een aantal divs niet afgesloten. Ik weet niet of dat problemen (gaat) geven bij de opmaak, maar die kans is wel aanwezig.
In deze aanpak is een preg_replace een beetje overbodig. Een str_replace zou hier ook voldoen.

Het nadeel hier is echter dat de openings quote tag ook omgezet wordt als er geen sluittag in het bericht staat en als gevolg de quote div dus ook niet afgesloten wordt. Houdt er wel rekening mee dat dit niet de hele layout van je site in de war gooit...
Als de gebruikers niets aanpassen aan de code die automatisch in het invoerkader komt als je op quote klikt. Dan is er toch geen probleem?

Als de gebruikers zelf beginnen prutsen aan de quotetags, dan kunnen er natuurlijk wel fouten binnensluipen. Hoe kan ik dit oplossen?

edit: zojuist een test gedaan en ik heb de sluitingstag weggelaten

http://selachiix-net.be/brugge/album.php?evenement=BROKfuif&naam=&pagina=6
Dit verandert dus niets aan de layout van de site, alleen aan de quote zelf

Reageren