Prova un po' con questo codice, io gli ho passato direttamente una pagina html e sembrerebbe funzionare, rende minuscoli attributi e tag e chiude quei tag che devono essere chiusi con lo slash in fondo. Perō č da testare un po' 
codice:
#callback function
function cb_tag_replace($mth){
$slash=null;
if(preg_match('/^(?:br|img|input|meta|link)(?:.*(.))?$/i',$mth[1],$m))
$slash=(!isset($m[1]) || $m[1]!='/')?'/':null;
return '<'.stripslashes(
preg_replace(
'/([A-Z]+)(=("|\').*?\\3)?/ie'
,'strtolower("$1")."$2"'
,$mth[1]
)
).$slash.'>';
}
$myTag='...';
$myTag=preg_replace_callback('/<([^<>]+)>/i','cb_tag_replace',$myTag);