Harry: Lösung

Beitrag lesen

Soso ...

nach ein paar weiteren Stunden angestrengten Nachdenkens freue ich mich die absolut simple Lösung zu präsentieren ... *grrrrrrrrr*

$text = "[x:xxx]hiernix[fett:fettfett[kursiv:kursivvvv][link(http://www.ilo.de):einlink]fett]wiedernix";
#----------------------------------------------------------------
while(preg_match("/([[^[^]]*])/", $text))
{ $t = preg_split("/([[^[^]]*])/", $text, -1, PREG_SPLIT_DELIM_CAPTURE);
 for($i=0; $i<count($t); $i++)
 {
  $t[$i] = preg_replace("/[fett:(.*)]/i", "<b>\1</b>", $t[$i]);
  $t[$i] = preg_replace("/[kursiv:(.*)]/i", "<i>\1</i>", $t[$i]);
  $t[$i] = preg_replace("/[link\s?((.*))\s?:(.*)]/i", "<a href="\1">\2</a>", $t[$i]);
  $t[$i] = preg_replace("/[x:(.*)]/i", "X\1X", $t[$i]);
 }
 $text = implode("", $t);
}
#----------------------------------------------------------------
echo $text;

Ergibt:
XxxxXhiernix<b>fettfett<i>kursivvvv</i><a href="http://www.ilo.de">einlink</a>fett</b>wiedernix

So wie es sein soll ...

Ciao,

Harry
 (sauer, daß er dafür solange gebraucht hat)