php aslında yine doğru yapıyor işini ama ikinci açılan ilki iptal ettiği için hepsini siliyor

<?php
$kaynak="<body><!-- <!-- <div> </div> --> <div>dfgdfgdfgfdgfg</div><!-- --> ";
$veri = preg_replace('/(<!\-\-|\-\->)/','',$kaynak);
echo '<pre>'.$veri;
?>

bu şekilde yine geçersin seninkini