Heureusement avec HTMLPurifier, il est possible de supprimer ces balises vides et donc d'obtenir un code HTML parfaitement propre.
$config = \HTMLPurifier_Config::createDefault();
$config->set('AutoFormat.RemoveEmpty', true);
$HTMLPurifier = new \HTMLPurifier($config);
$str = "<p><p>ok</p><p>ok2</p></p><br><p></p>";
$str = $HTMLPurifier->purify($str);
echo $str ;
// Le code suivant affichera : <p>ok</p><p>ok2</p><br />
Documentation : http://htmlpurifier.org/live/configdoc/plain.html
Exemple : http://htmlpurifier.org/phorum/read.php?3,6656,6656