Remover tags de script ou comentários de html usando expressões regulares é uma má ideia, então é melhor usar PHP DOMDocument
.
<?php
function removeDomNodes($html, $xpathString)
{
$dom = new DOMDocument;
$dom->loadHtml($html);
$xpath = new DOMXPath($dom);
while ($node = $xpath->query($xpathString)->item(0))
{
$node->parentNode->removeChild($node);
}
return $dom->saveHTML();
}
Por exemplo, para remover todos os comentários de uma string HTML, passe o xpath para comentários:
$html = removeDomNodes($html, '//comment()');
Ou para remover todas as tags de script:
$html = removeDomNodes($html, '//script');