Einzelnen Beitrag anzeigen

Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#7

Re: [php] BBCode Parser

  Alt 11. Mär 2007, 21:00
Dass die RandId (oder BBCode-UID bei phpBB) verhindern soll, dass jemand falschem HTML-Code erzeugt, ist nicht richtig.

Du hast zwei Funktionen: FirstPass und SecondPass. FirstPass wird nur beim Speichern des Beitrags in der Datenbank aufgerufen, SecondPass bei jedem Anzeigen des Beitrags. Im FirstPass prüft man nun mittels Regex, welche Tags gültig sind. Diese Tags versieht man mit einer RandId und speichert den Beitrag mit dieser Änderung in die Datenbank. Im SecondPass macht man nun eine einfache String-Ersetzung der Tags mit RandId.

Dadurch hat man die aufwändige Ersetzung mit regulären Ausdrücken nur beim Posten des Beitrags, die schnelle String-Ersetzung wird verwendet, wenn der Beitrag angesehen wird. Die Verwendung von solchen IDs hat also lediglich Performance-Gründe.

//edit: @yankee: Wieso sollten die regulären Ausdrücke unnötig sein? Mit was bestimmst Du denn, in welche Tags die BBCode-UID reinkommt?
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat