AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche BBCode-Klasse für PHP

Ein Thema von Matze · begonnen am 10. Mär 2010 · letzter Beitrag vom 11. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#11

Re: Suche BBCode-Klasse für PHP

  Alt 10. Mär 2010, 21:29
Moin Matze,

Zitat von Matze:
@Valle: Hm ok, aber ein Framework möchte ich dennoch nicht nutzen.
er hat doch bereits gesagt, dass du kein Framework nutzen musst. Du sollst dir lediglich die Zend_Markup-Klasse ziehn und fertig. Ob du die Klasse verwendest oder doch "mySuperDuperUberBBCodeParser" verwendest ist ja kein Unterschied, oder?
Guck dir bei der Gelegenheit auch die Dokumentation zu Zend_Markup an.

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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Suche BBCode-Klasse für PHP

  Alt 10. Mär 2010, 21:33
Überredet, ich schaue mal, ob ich damit etwas anfangen kann.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#13

Re: Suche BBCode-Klasse für PHP

  Alt 10. Mär 2010, 22:19
@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
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#14

Re: Suche BBCode-Klasse für PHP

  Alt 10. Mär 2010, 22:29
@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.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Suche BBCode-Klasse für PHP

  Alt 10. Mär 2010, 23:09
Zend hat einen riesigen Overhead. Das ist alles andere als Standalone.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#16

Re: Suche BBCode-Klasse für PHP

  Alt 11. Mär 2010, 15:23
Ich nutze NBBC. Macht n guten Eindruck, ist schnell, funktioniert, und wird weiterentwickelt.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Suche BBCode-Klasse für PHP

  Alt 11. Mär 2010, 16:03
Das schaue ich mir an, danke.

Edit: ganz wohl ist mir nicht, wenn ich solche RegEx darin sehe.


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);
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#18

Re: Suche BBCode-Klasse für PHP

  Alt 11. Mär 2010, 17:18
Das geht ja noch ... du willst nich wissen, wie eine RegEx für alle möglichen laut Spec erlaubten URLs aussieht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#19

Re: Suche BBCode-Klasse für PHP

  Alt 11. Mär 2010, 20:43
Naja, dafür ist die Klasse ganz sauber geschrieben.

Insofern... Kann mans ja mal probieren. Zumal ja auch HTML-Input gefiltert wird.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Suche BBCode-Klasse für PHP

  Alt 11. Mär 2010, 21:37
Bisher macht sie einen sehr guten Eindruck, muss ich sagen. 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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz