Einzelnen Beitrag anzeigen

Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#1

[PHP] String-Array in einen Baum umwandeln

  Alt 26. Sep 2006, 17:16
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:
class node {
 
  var $content, $params, $plain, $children;

  function addnode() {
    $child=new node();
    $this->children[]=$child;
    return $child;
  }
 
}
$content ist bei einem BB-Code der Code und bei einem node mit $node->plain==1 der Text.
$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
Miniaturansicht angehängter Grafiken
bbcode_568.png  
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat