![]() |
Re: [php] BBCode Parser
@Christian: Unter anderem das mit der Aenderung. Nehmen wir aber folgenden BBCode:
Code:
Der muss ja ersetzt werden in
[url]www.foobar.net[/url]
Code:
Jetzt erklaer mir wie du das ohne RegExp anstellen willst ;)
[url="http://www.foobar.net"]www.foobar.net[/url]
BTW, nicht alle BBCodes werden durch FirstPass gejagt. Im phpBB bekommen URL-BBCodes keine UID verpasst, und muessen deshalb im Second-Pass validiert werden. Dies macht eine Anpassung des URL-BBCodes ohne Neuparsen der Beitraege moeglich :) Greetz alcaeus |
Re: [php] BBCode Parser
Zitat:
|
Re: [php] BBCode Parser
Zitat:
Zitat:
//edit: grmpf, roter Kasten? Hm, naja, das ist nicht schön, aber es geht in der Tat. Wie sähe das bei Tags der Form
Code:
aus?
[url=http://www.foo.de]Bar[/url]
|
Re: [php] BBCode Parser
Zitat:
Mein bbcode-Parser ist jedenfalls in der Lage dieses Konstrukt ohne regex im secondPass auszuwerten. EDIT: Das gewisse Regexe im secondPass Veränderungen am Code zulassen, lasse ich als Argument nicht zu. str_replace ist sehr viel schneller als preg_replace und im Zweifelsfall wäre es besser ein kleines update-script zu schreiben, welches kurz alle Beiträge neu parst. Schliesslich ist das eine einmalige Aktion, da ist es nicht so wichtig, wenn es etwas dauert. Beim Anzeigen der Beiträge, was bei grossen Foren mehrmals pro Sekunde passiert, kann es durchaus darauf ankommen. |
Re: [php] BBCode Parser
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: [php] BBCode Parser
Moin,
mal kurz unabhaengig von der Diskussion: ich hab mir im Laufe der letzten Woche deine Engine mal kurz durchgeguckt. Was mir dabei fehlen, sind folgende Dinge:
Greetz alcaeus |
Re: [php] BBCode Parser
Zitat:
Zum Zeitpunkt der Erstellung meines Beitrages gab es in der DB 611.718 Beiträge. Mein Parser braucht für den Beispiel text für firstPass gaaanz grob ca. 0,7ms und reverseFirstPass 2ms. (Athlon 64 3700+, 2 GB RAM) Sagen wir mal, dass der Durschnittliche Beitrag doppelt solang ist wie mein Beitrag, dann dauert first-Pass+reverseFirstPass ca. 5ms. 5msx611.718 also ca. 50 Minuten. Also weniger als 1 Stunde ;-). Und: Je grösser das Forum, je mehr Leistung verbrauchen diese Prozesse die ganze Zeit über.. Dann verbrauche ich zwar nur 5ms, aber wenn 200 Beiträge pro Sekunde abgerufen werden, ist der CPU zu 100% ausgelastet... Und wie oft kommt es bitte vor, dass du dein bbcode-parser verändert? Dann lässt du lieber das Update-script auf niedriger nice-Stufe im Hintergrund laufen, und produzierst so die gleiche Last, wie wenn du den Beitrag immer neu generieren würdest, aber nur für eine Stunde :-). Oder du speicherst die Version deines bbcode-Parser immer mit und beim anzeigen eines Beitrags merkst du, dass die Version outdated ist und regenierierst den Beitrag... Es gibt viele Möglichkeiten, aber sobald die DP bei 15 Beiträgen pro Seite (also 75ms Generationszeit) 40K Seitenaufrufe hatte hast du die Zeit für das Updatescript schon wieder raus :-). @alcaeus: Ich schau mal, ob ich nicht Zeit finde das einzubauen :-). |
Re: [php] BBCode Parser
Zitat:
Zitat:
Zitat:
Zitat:
Ich denke, wir werden da zu keinem "richtig" oder "falsch" kommen. Es ist alles eine Frage, wie man verschiedene Aspekte gegeneinander aufwiegt, und das tun auf Grund unterschiedlicher Erfahrungen halt anders. |
Re: [php] BBCode Parser
Na das sind ja mal reichhaltige Antworten.
In der Zwischenzeit hab auch ich mir mal den bbcode-parser von phpBB angeguckt und festgestellt, dass der genauso arbeitet wie dein Script. Sehr genial :-D (Sry, dass ich mich jetzt nicht mit euch über Serverlast streite ;-) ) |
Re: [php] BBCode Parser
Bin selber noch auf der Suche nach sowas.
Und speziell sowas wär mir da wichtig: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz