![]() |
Re: Suche BBCode-Klasse für PHP
Moin Matze,
Zitat:
Guck dir bei der Gelegenheit auch die ![]() Ansonsten kann ich dir allerhoechstens das BBCodde-System von phpBB empfehlen - allerdings steht diese Klasse unter der GPL und ist ausserdem etwas schlimmer rauszuziehn. Greetz alcaeus |
Re: Suche BBCode-Klasse für PHP
Überredet, ich schaue mal, ob ich damit etwas anfangen kann. :stupid:
|
Re: Suche BBCode-Klasse für PHP
@NamenLozer:
Mh, also ich habe auf meiner Webseite alle BB-Codes mittels Regular Expressions geparst. Ich habe damit keine Probleme oder Sicherheitlücken. Der Code ist zwar schon etwas älter, aber er funktioniert recht gut. Es kann gut sein, dass mein BB-Code nicht ganz so umfangreich ist, wie den auf den du dich beziehst. Aber für Zitate, Code-Abschnitte und einfachen Inline-Markups wie Kursivschrift reicht es auf jeden Fall. Kannst du mir vielleicht mit einem kleinem BB-Code Beispiel erläutern, wo genau sich das Problem befindet? Würde mich gerne damit beschäftigen. :-) Liebe Grüße, Valle |
Re: Suche BBCode-Klasse für PHP
@Valle:
Ein konkretes beispiel habe ich nicht, zumal ich ja deine Implementierung nicht kenne, aber versuch einfach mal, verschiedene BBCode-Tags ungünstig zu verschachteln. Die Wahrscheinlichkeit, dass du dir zumindest dein Layout damit zerschießt, ist recht groß. Sogar in großen Foren gibt es gelegentlich dieses Problem - ich erinnere mich an ein Forum, wo ich früher aktiv war, welches auf WBB2 basierte. Dort gab es einen "Spam"-Bereich, in dem wir uns öfters einen Spaß daraus gemacht haben, das Layout durch ungültig verschachtelte BBCodes zu zerschießen. Dabei ist das WBB sogar eine professionelle Software, die sogar Geld kostet. Aber selbst wenn dein Layout nicht gleich kaputt gehen sollte, erzeugst du zumindest invaliden (X)HTML-Code. |
Re: Suche BBCode-Klasse für PHP
Zend hat einen riesigen Overhead. Das ist alles andere als Standalone.
|
Re: Suche BBCode-Klasse für PHP
Ich nutze
![]() |
Re: Suche BBCode-Klasse für PHP
Das schaue ich mir an, danke. :)
Edit: ganz wohl ist mir nicht, wenn ich solche RegEx darin sehe. :shock:
Code:
if (preg_match("/^
(?:https?|ftp):\\/\\/ (?: (?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+ [a-zA-Z0-9] (?:[a-zA-Z0-9-]*[a-zA-Z0-9])? | \\[ (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3} (?: 25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]: (?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21-\\x5A\\x53-\\x7F] |\\\\[\\x01-\\x09\\x0B\\x0C\\x0E-\\x7F])+ ) \\] ) (?::[0-9]{1,5})? (?:[\\/\\?\\#][^\\n\\r]*)? $/Dx", $string)) return true; // ... $output = preg_split("/( (?: (?:https?|ftp) : \\/* (?: (?: (?: [a-zA-Z0-9-]{2,} \\. )+ (?: arpa | com | org | net | edu | gov | mil | int | [a-z]{2} | aero | biz | coop | info | museum | name | pro | example | invalid | localhost | test | local | onion | swift ) ) | (?: [0-9]{1,3} \\. [0-9]{1,3} \\. [0-9]{1,3} \\. [0-9]{1,3} ) | (?: [0-9A-Fa-f:]+ : [0-9A-Fa-f]{1,4} ) ) (?: : [0-9]+ )? (?! [a-zA-Z0-9.:-] ) (?: \\/ [^&?#\\(\\)\\[\\]\\{\\}<>\\'\\\"\\x00-\\x20\\x7F-\\xFF]* )? (?: [?#] [^\\(\\)\\[\\]\\{\\}<>\\'\\\"\\x00-\\x20\\x7F-\\xFF]+ )? ) | (?: (?: (?: (?: [a-zA-Z0-9-]{2,} \\. )+ (?: arpa | com | org | net | edu | gov | mil | int | [a-z]{2} | aero | biz | coop | info | museum | name | pro | example | invalid | localhost | test | local | onion | swift ) ) | (?: [0-9]{1,3} \\. [0-9]{1,3} \\. [0-9]{1,3} \\. [0-9]{1,3} ) ) (?: : [0-9]+ )? (?! [a-zA-Z0-9.:-] ) (?: \\/ [^&?#\\(\\)\\[\\]\\{\\}<>\\'\\\"\\x00-\\x20\\x7F-\\xFF]* )? (?: [?#] [^\\(\\)\\[\\]\\{\\}<>\\'\\\"\\x00-\\x20\\x7F-\\xFF]+ )? ) | (?: [a-zA-Z0-9._-]{2,} @ (?: (?: (?: [a-zA-Z0-9-]{2,} \\. )+ (?: arpa | com | org | net | edu | gov | mil | int | [a-z]{2} | aero | biz | coop | info | museum | name | pro | example | invalid | localhost | test | local | onion | swift ) ) | (?: [0-9]{1,3} \\. [0-9]{1,3} \\. [0-9]{1,3} \\. [0-9]{1,3} ) ) ) )/Dx", $string, -1, PREG_SPLIT_DELIM_CAPTURE); |
Re: Suche BBCode-Klasse für PHP
Das geht ja noch ... du willst nich wissen, wie eine RegEx für alle möglichen laut Spec erlaubten URLs aussieht. :lol:
|
Re: Suche BBCode-Klasse für PHP
Naja, dafür ist die Klasse ganz sauber geschrieben. ;)
Insofern... Kann mans ja mal probieren. ;) Zumal ja auch HTML-Input gefiltert wird. |
Re: Suche BBCode-Klasse für PHP
Bisher macht sie einen sehr guten Eindruck, muss ich sagen. :thumb: Nur 140 KB PHP-Code ist recht viel, aber das wird der Server schon verkraften können. *g*
Das einzige, was ich in der Klasse selbst ändern musste war das Rausschmeißen sämtlicher vordefinierter Codes. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 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-2025 by Thomas Breitkreuz