Moin!
halli hallo. ich habe ein kleines news-system gebastelt. da will ich auch kommentare erlauben mit bbcode. da ersetze ich einfach per regex die bbcodes durch html. jetzt will ich aber bestimmte bbcodes nur x-mal pro kommentare zulassen. hat irgendwer ne idee wie ich das realisiere? ausserdem frage ich mich noch, wie ich abfange, wenn jemand zwar einen öffnenden, aber keinen schliessenden tag mehr eingibt.
Christian Seiler hat so eine schöne BBCode-Klasse für PHP geschrieben, darüber hinaus gibts auch in PEAR einen BBCode-Parser - warum erfindet immer jeder Programmierer das Rad neu? Einmal Google angeschmissen, und schon erhält man Lösungen, die einem tausende von Programmierstunden abnehmen, und insbesonder die Probleme.
Aber zu deiner Frage: Du wirst wohl ganz einfach durchzählen müssen, wie häufig ein bestimmter Code vorkommt, um zu verhindern, dass er beliebig häufig auftaucht.
Und Frage 2: Du wirst deinen Text nicht einfach nur durch Regexe jagen können, sondern wirst dir die Mühe machen müssen, dir zu merken, welche Tags geöffnet werden, um dann passend spätestens am Textende alle schließenden Tags einzufügen (in der richtigen, verschachtelten Reihenfolge), bzw. dies eventuell (zur Erzielung der korrekten Schachtelung) teilweise auch schon früher zu tun. All diese Dinge erledigen die oben erwähnten Klassen schon für dich. Also warum selbst nochmal damit herumschlagen?
- Sven Rautenberg
My sssignature, my preciousssss!