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);