Grazie intanto per gli interventi.
Allora il mio codice è il seguente:
while (preg_match("/<([[:alpha:]]*)[[:space:]]*([^>]*)>/i",$str,$reg)) {
print_r($reg);
if ($reg[1][0] == "/"){
$tag = strtolower(substr($reg[1],1));
}else{
$tag = strtolower($reg[1])...