AGB  ·  Datenschutz  ·  Impressum  







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

[PHP] BBCode regulärer ausdruck

Ein Thema von Kalfany · begonnen am 21. Aug 2008 · letzter Beitrag vom 25. Aug 2008
Antwort Antwort
Kalfany

Registriert seit: 28. Feb 2008
Ort: München
153 Beiträge
 
Delphi 2007 Professional
 
#1

[PHP] BBCode regulärer ausdruck

  Alt 21. Aug 2008, 08:54
Morgen,

ich habe eine funktion zum umwandeln von BBCode zu HTML das funktioniert soweit auch. Nur möchte ich jetzt innerhalb eines bestimmten tags (immer [P][/P]) alle \r\n durch
erstezen, aber eben nur innerhalb dieses Tags und nicht in Tags innerhalb von [P][/P] (ich weiß das es nl2br gibt, aber das geht auf alles).

Code:
'/(?<!\\\\)\[p(?::\w+)?\](.*?)\[\/p(?::\w+)?\]/si' => "

\\1</p>"
'/(?<!\\\\)\[b(?::\w+)?\](.*?)\[\/b(?::\w+)?\]/si' => "[b]\\1[/b]"
Nur möchte ich diese erstezung nicht verschachtelt machen also bei diesem beispiel
Code:
[P]Text\r\ntext [B]bold\r\nText[/B] mehr\r\nText[/P]
soll das \r\n nur innerhalb [P][/P] aber nicht innerhalb ['B]['/B] ersetzt werden, richt wäre also:
Code:

Text
text [b]bold\r\nText[/b] mehr
Text</p>
(Was auch gehen würde, erst ein nl2br und dann die "falschen"
wieder raus löschen)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: [PHP] BBCode regulärer ausdruck

  Alt 21. Aug 2008, 09:02
Tja, da du eigentlich keine Frage gestellt hast. Und deine Problembeschreibung schon die Lösung enthält, frage ich mich: was willst du von uns?
  Mit Zitat antworten Zitat
Kalfany

Registriert seit: 28. Feb 2008
Ort: München
153 Beiträge
 
Delphi 2007 Professional
 
#3

Re: [PHP] BBCode regulärer ausdruck

  Alt 21. Aug 2008, 09:06
wo wären denn die lösung?

mein problem ist einfach das ich die verschachtelung mit ausschluss nicht hinbekomme, bzw. weiß ich nicht wie man etwas rauslöscht (bei den BBCode sachen wird ja nur was ersetzt)

zumal sich bei dem weg mit erst nl2br, noch ein anderes problem entsteht denn dann können die
auch ausserhalb von [P][/P] sein

Code:
[H1]Überschrift[/H1]

[P]Test
text [B]fett
text[/B] text[/P]
müsste zu diesem werden

Code:
[H1]Überschrift[/H1][P]Test
text [B]fett text[/B] text[/P]
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: [PHP] BBCode regulärer ausdruck

  Alt 21. Aug 2008, 11:45
dann eben nicht...
  Mit Zitat antworten Zitat
Kalfany

Registriert seit: 28. Feb 2008
Ort: München
153 Beiträge
 
Delphi 2007 Professional
 
#5

Re: [PHP] BBCode regulärer ausdruck

  Alt 25. Aug 2008, 07:34
Zitat von omata:
dann eben nicht...
??????????


ich habe mich momentan das ganze per CSS "behoben" aber eine lösung auf dauer ist das nicht
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: [PHP] BBCode regulärer ausdruck

  Alt 25. Aug 2008, 08:02
Hi,


wenn ich dich richtig verstehe, baue dir doch einfach eine funktion, wo du den nächsten BB-Tag raussuchst, und dann den Text zwischen diesem Tag und dem nächsten je nachdem auswertest.

Du weisst dann ja auch immer, was dein aktueller BB-Tag ist. Dürfte dann nicht so schwer werden.

Gruß
Ansgar
Ansgar
  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
 
#7

Re: [PHP] BBCode regulärer ausdruck

  Alt 25. Aug 2008, 08:13
Moin,

in solchen Fällen schaue ich immer gerne bei PEAR vorbei: HTML_BBCodeParser.

Zitat:
This is a parser to replace UBB style tags with their html equivalents.
It does not simply do some regex calls, but is complete stack based parse engine. This ensures that all tags are properly nested, if not, extra tags are added to maintain the nesting. This parser should only produce xhtml 1.0 compliant code. All tags are validated and so are all their attributes. It should be easy to extend this parser with your own tags.
Grüße
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:42 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