Simple Methode um Beitragslänge zu bestimmen?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Simple Methode um Beitragslänge zu bestimmen?

Beitrag von Seether »

Gibt es eine simple Methode um die effektive Länge eines Beitrags wenigstens nährungsweise bestimmen zu können?

Also was ich bezwecken will:
Alles zwischen

Code: Alles auswählen

 [quote] und [/quote]
soll nicht mit gezählt werden, der Rest ist egal, also Smilies, BBCode etc...

Klappt wohl nur über Reguläre Ausdrücke, oder?

Ist das eine aufwändige Sache oder mit einem einfache Ausdruck möglich?

S.
Zuletzt geändert von Seether am 04.10.2008 11:52, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn du alle Zitate rauslassen willst dann geht das auf jeden Fall nur mit regulären Ausdrücken und auch nicht so sonderlich einfach. Zitate lassen sich ja beliebig verschachteln und diese Verschachtelungen lassen sich auch mit Regulären Ausdrücken nur mit Hilfe von Schleifen erfassen.

Ich probier mal dir einen Ansatz zu geben. Einen sehr guten Start liefert dir die includes/bbcode.php von phpBB 2 (ich finde die einfacher zu verstehen als das Expemplar von phpBB 3, auch wenn das gleiche da natürlich auch gemacht wird).

Generell könntest du mittels [php:preg_replace] Dinge in deinem Text ersetzen. Wenn du das schon mal mit den ganzen "standard" Tags machst ([color] usw.) dann hast du diesen Ballast, der ja eigentlich nicht mitgezählt werden sollte schon mal raus.
Da du alle Quotes entfernen willst (also nicht mitzählen) könnte man es mit so einem Suchmuster versuchen:

Code: Alles auswählen

#\[quote(=".*?")?\].*?\[/quote\]#is
Dieses musst du so lange mehrfach über den Post laufen lassen und entfernen, bis sich der Text nicht mehr ändert (nur so kannst du beliebige Verschachtelungen abfangen, einmal drüber laufen lassen entfernt nur die oberste Schicht).

Danach musst du dann nur noch Buchstaben oder Wörter zählen (je nach dem was du haben willst).

Wenn die Posts direkt aus der Datenbank kommen, dann muss in die BBcodes noch die bbcode_uid rein, i.a. per Doppelpunkt hinten im Tag drin (z.b. [b:e3992af]) (KB:bbcode_uid).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Beitrag von Seether »

gn#36 hat geschrieben: Wenn die Posts direkt aus der Datenbank kommen, dann muss in die BBcodes noch die bbcode_uid rein, i.a. per Doppelpunkt hinten im Tag drin (z.b. [b:e3992af]) (KB:bbcode_uid).
Verstehe ich nicht so ganz... Man kann doch einfach alles löschen also den

Code: Alles auswählen

[quote]-Tag inklusive uid 
... oder nicht?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Nur wirst du in der Datenbank nur dann [quote] finden, wenn du beim tippen des Posts ein [/quote] vergessen hast. Die stehen in der Datenbank mit [quote:ef392ab1] oder etwas ähnlichem drin, wobei ef392ab1 die bbCode UID ist.

Also musst du beim ersetzen für das zählen logischerweise die bbcode UID mit suchen sonst wirst du keinen einzigen der gewünschten Tags ersetzen und zählst die Zitate grundsätzlich immer mit.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Seether
Mitglied
Beiträge: 1446
Registriert: 10.10.2002 23:42

Beitrag von Seether »

Ja das ist mir bewusst, aber ich dachte man könnte auch so suchen:

Code: Alles auswählen

[quote: * ][/quote]
Müsste doch gehen mit regulären Ausdrücken?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Jo geht theoretisch auch. Aber nicht mit dem Stern.

Code: Alles auswählen

#\[quote(=".*?")?(:[a-f0-9]*)\].*?\[/quote(:[a-f0-9]*)\]#is
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“