Para controlar que las etiquetas estén equilibradas puedes utilizar una pila.
http://www.phpbuilder.com/columns/sc...25.php3?page=6
Ese tutorial trata sobre cómo interpretar un archivo HTML con un intérprete SAX (Simple API for XML), pero utilizando una pila para controlar la profundidad de las etiquetas.
un saludete.