Da strip_tags im Fall der <script> Tags leider nur <script> und </script> entfernt, was in den meisten Fällen im HTML-Code (z.B. bei <a>, <b>, <p>) auch Sinn macht, bedürfen Javascript Stellen einer Extra-Behandlung.
Ansonsten hat man zusätzlich zum extrahierten Text auch noch den Javascript-Quelltext im Code sofern dieser nicht über src=… eingebunden wurde.
Ähnlich sieht es bei Kommentaren im Quelltext aus oder im “schlimmsten” Fall Javascript, was oft mit Pseudo-Kommentaren umschlossen wird, um Kompatibilität mit uralt Browsern sicherzustellen…
Die Lösung ist quick’n'dirt und kann einfach übernommen werden:
<?php
function strip_tags_incl_script($text,$allow)
{
$text = preg_replace("/(\<script)(.*?)(script>)/si", "dada", "$text");
$text = strip_tags($text,$allow);
$text = str_replace("<!--", "<!--", $text);
$text = preg_replace("/(\<)(.*?)(--\>)/mi", "".nl2br("\\2")."", $text);
return $text;
}
?>