![]() |
[PHP] String-Array in einen Baum umwandeln
Liste der Anhänge anzeigen (Anzahl: 1)
Morgen. Ich habe ein Array mit folgenden Elementtypen:
'[irgendwas=wuppdi,blubb,wuppdi]': Ein Starttag, leitet einen neuen Knoten ein. Das Pattern \[.*?(=.*?)?\][\r]?[\n]? matcht. Der Teil nach dem = ist optional. 'irgendwas': Ein Plaintext. Er ist sozusagen der Inhalt des Tags. '[/irgendwas]': Ein Endtag, beendet einen Knoten. Das Pattern \[/.*?(=.*?)?\][\r]?[\n]? matcht. Tjaa, wie parse ich das jetzt in einen Baum? Ein Knoten sieht bei mir so aus:
Code:
$content ist bei einem BB-Code der Code und bei einem node mit $node->plain==1 der Text.
class node {
var $content, $params, $plain, $children; function addnode() { $child=new node(); $this->children[]=$child; return $child; } } $params sind die Parameter, also bei '[ quote=asdf]' wäre das 'asdf'. $plain ist, wie weiter oben schon steht, ob der content als BB-Code oder als Text zählt $children ist ein Array mit den Subknoten. Folgender Code würde dem Baumdiagramm im Anhang entsprechen:
Code:
[b]Wuppdi[/b]
[quote] [i] [color=#424242] Blubb [/color] [/i] [/quote] Foo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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