- substr: documentation ( source)
<?php
$html_string = "
<div> Below are object Node with the html code </div>
<script> alert('i want this to be replaced. it has no newline'); </script>
<div> I don't want this to be replaced </div>
<script>
console.log('i also want this to be replaced. It has newline');
</script>
<div> This is a div tag and not a script, so it should not be replaced </div>
<script> console.warn(Finally, this should be replaced, it also has newline');
</script>
<div> The above is the final result of the replacements </div> ";
$doc = new DOMDocument();
$doc->loadHTML("<html>$html_string</html>", LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//script') as $script) {
$comment = $doc->createComment('THIS SCRIPT CONTENT HERE HAS BEEN ALTERED');
$script->parentNode->replaceChild($comment, $script);
}
echo substr($doc->saveHTML(), 6, -8);