PHP-Code:
$text '[test]text[/test]';

echo 
strtr($text, array('[/test]' => '</div>''[test]' => '<div id=test>')); 
Der Fehler war, daß du die Anforderung zu schwammig definiert hast.


Okay, okay... Hier ist eine etwas allgemeinere Version. Macht zwar keine verschachtelten Tags, aber das direkte Ding war langweilig.
PHP-Code:
$text '[test]text[/test]';

// Diese Zeile würde korrektes XML ausgeben, aber danach wurde ja nicht gefragt. (Fehler in der Aufgabenstellung?)
//$text = preg_replace('#\[([^\]]+?)\]([^\[]+?)\[/\\1\]#', '<div tag="$1">$2</div>', $text);
$text preg_replace('#\[([^\]]+?)\]([^\[]+?)\[/\\1\]#''<div tag=$1>$2</div>'$text);

echo 
$text

Jays Fehler war, daß er bei der Threaderstellung noch ask_mods_for_permission() hätte aufrufen sollen, das ist einfach besserer Stil.