To retrieve or delete the content of a script tag, even with special cases like <script async>
.
$str = '
Some js embed
<script async>
alert("js")
let job, origin = new Date().getTime()
</script>
<span id="OUT"></span>
<button onclick="alert()">RESET</button>
timer experiment
';
$reg = '/<script([\s\S]*)<\/script>/';
preg_match($reg, $str, $matches);
$match = substr($matches[0], (strpos($matches[0], ">")+1));
$match = str_replace("</script>", "", $match);
echo $match;
/* OUTPUT
alert("js")
let job, origin = new Date().getTime()
*/
echo "\n---------------------\n";
echo preg_replace($reg, "DELETED", $str);
/* OUTPUT
Some js embed
DELETED
<span id="OUT"></span>
<button onclick="alert()">RESET</button>
timer experiment
*/