![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.202
|
Ich bastle gerade ein wenig mit BBCode herum. Nun kommt mir die Frage: Wie geht das mit dem noparse-tag? Der kann ja auch hier im Forum benutzt werden und sorgt dafür, dass das was von ihm eingeschlossen wird nicht als BBCode interpretiert wird. Wie kann man sowas realisieren? einfach das noparse sowie das End-Stück und die darin eingeschlossenen tags durch was anderes ersetzen und am Ende wieder zurücktauschen? Hat jemand Ideen dazu? Anmerkung der Projektleitung Aus dieser Fragestellung entstand ein Tutorial: [php] BBCode-Parser mit [noparse]-Tag selbst gemacht
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! Geändert von Jann Hendrik (29.04.2008 um 08:12 Uhr). |
| | |
| | Nach oben #2 |
| Jonas Registriert seit: 03.06.2006
Beiträge: 239
|
Ich würde die erste Methode anwenden, da sie erstens leicht zu realisieren ist und zweitens vermeidet, dass der BBCode-Parser zu viel machen muss und das im NOPARSE mit parst.
__________________ Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
| | |
| | Nach oben #3 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Meine BBCode-Klasse arbeitet so, dass es von "außen nach innen" die BBCodes abarbeitet und ich dem entsprechenden Tag sagen kann, ob es quasi-rekursiv durchsucht werden soll nach weiteren BBCodes. Natürlich habe ich das nur für den "noparse"-Tag gemacht, aber vielleicht ergibt sich irgendwann nochmal eine günstigere Gelegenheit, bei der das von größeren Nutzen sein kann (nicht, dass es jetzt keinen Nutzen hätte).
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #4 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.202
|
mmh... das 'von-außen-nach-innen' wäre natürlich noch eine Idee. Derzeit arbeite ich die einfach Stück für Stück ab. Die 'von-außen-nach-innen'-Methode erscheint mir die sauberere Methode zu sein, mit jedoch dem Nachteil, dass... ich keine Ahnung hätte, wie ich das alles umbauen müsste...
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #5 |
| Christian Schuhmann Registriert seit: 09.03.2007 Ort: Nürnberg
Beiträge: 58
|
Vll. bringt dich das Beispiel #1720 http://de2.php.net/manual/en/functio...e-callback.php weiter. bobby. |
| | |
| | Nach oben #6 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Nur mal als Beispiel: Ich habe meine BBCodes vorher ja mit Zahlen markiert, damit hinterher mit einem einfachen RegEx auch immer die passenden Paare gefunden werden: PHP-Code: Wie die Informationen letztendlich gespeichert werden, auf die du dann zugreifst ist ja egal, in dem Snippet ist es halt noch ein Array in dem Objekt, da es eine Methode aus einer Klasse ist (oder besser ein Teil davon). Ich denke du hast genug Erfahrung um das deinen Wünschen anzupassen So, nach diesem Snippet sieht folgender Beispieltext: Code: [b]Dies ist ein [u]Test[/u] und [b]dabei[/b] bleibt es [u]auch! Dies ist [u]ein [b]Test[/b][/u] und[/u] dabei bleibt es auch! Dies ist ein Test und dabei bleibt es auch![/b] Code: [b:1]Dies ist ein [u:1]Test[/u:1] und [b:2]dabei[/b:2] bleibt es [u:1]auch! Dies ist [u:2]ein [b:2]Test[/b:2][/u:2] und[/u:1] dabei bleibt es auch! Dies ist ein Test und dabei bleibt es auch![/b:1] PHP-Code: EDIT: Ich hoffe ich konnte dir damit überhaupt helfen?! Achja und bevor ich es vergesse: Parameter sind in den BBCodes natürlich auch möglich, die stehen nach dem RegEx in Feld 3 als kompletter String, da musst du dann eventuell auch nochmal "parsen", sofern du Parameter überhaupt ermöglichen möchtest. EDIT2: Was man im Kopf nicht hat... Der RegEx arbeitet natürlich deswegen "von Innen nach Außen", weil immer nur die "äußersten" Codes gefunden werden. Der "Inhalt" der BBCodes (Feld 4) muss rekursiv natürlich wieder von dem RegEx behandelt werden, sofern es das denn darf. Und genau da kommt dein Wunsch ins Spiel: [noparse] darf nicht! Und siehe da: Es ist alles gelöst, was du haben wolltest
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll Geändert von MrNiceGuy (20.10.2007 um 08:52 Uhr). |
| | |
| | Nach oben #7 | |
| Daniel Golowin Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
Seit rekursive Regex möglich sind, ist das nummerieren der BBCodes nicht mehr nötig. Einfach wie im Beispiel aus dem Manual: Zitat:
Möglich währe aber auch den Regex etwas umzuschreiben, damit die NOPARSE-BBCode mit dem Inhalt ignoriert wird und erst nach der Verarbeitung die NOPARSE-Tags zu löschen. | |
| | |
| | Nach oben #8 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Cool, den kannte ich noch garnicht, wurde in den RegEx-Tutorials irgendwie nie erwähnt, scheint aber auch eine spezielle Besonderheit von PHP zu sein mit dem (?R), denn sonst habe ich das nirgends gefunden. Würde ja bedeuten, dass der Modifier "R" im Suchstring eingebunden werden soll. Aber es gibt eigentlich keinen Modifier "R"!? Hat da jemand nähere Informationen zu, ob das Standard ist oder eine PHP-Besonderheit? Wäre ja auch für andere Programmiersprachen nützlich!?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #9 | |
| Daniel Golowin Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
Kenn das auch nur von PHP. Ist aber schon etwas länger das ganze möglich. Dazu aus dem Manual: http://de2.php.net/manual/en/referen...ern.syntax.php Zitat:
| |
| | |
| | Nach oben #10 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
OK, da ist dann halt das Problem, wenn man generelle RegEx-Tutorials betrachtet, in denen das nie behandelt wurde... Sehr cool die Funktion jedenfalls. Werde ich demnächst bei meiner BBCode-Klasse übernehmen denke ich
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #11 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.202
|
@booby: danke für den link. Hier nochmal mit den richtigen Anker: http://de2.php.net/manual/en/functio....php#id3412414 Jut - dann... wartet da wohl ein wenig Arbeit auf mich Da das nicht sooo dringend ist - und ich mich da erstmal gewaltig einlesen muss, werde ich das ein wenig nach hinten schieben.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
| | Nach oben #12 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.202
|
als Nachtrag sei hier noch das Tutorial von MrNiceGuy erwähnt: [php] BBCode-Parser mit [noparse]-Tag selbst gemacht
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! Geändert von Ben (03.12.2007 um 16:12 Uhr). |
| | |
| | Nach oben #15 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.202
|
sry. danke.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| html in bbcode umformen ? | robo47 | Gesuche | 8 | 23.08.2008 11:50 |
| [url] BBCode | Garnele | PHP-Programmierung | 11 | 03.12.2007 18:52 |
| [suche] WYSIWYG BBCode Editor | Jann Hendrik | Gesuche | 4 | 16.10.2007 20:19 |
| Problem mit dem verlinken innerhalb von pdf-Dokumenten wegen der Nutzung von BBCode | Jann Hendrik | PHP-Programmierung | 3 | 10.02.2006 16:27 |
| RegExp-Problem mit [url]-tag (BBCode) | Jann Hendrik | PHP-Programmierung | 4 | 03.07.2005 20:08 |