Задача - убрать из текста куски javascript-кода, в том числе и такие: Код (Text): <script language="javascript"> function FF () { document.write("<script></script>"); } </script> Хочется чего-нибудь элегантного, вроде одного регулярного выражения 8) , но пока не получается. :?:
PHP: <?php function jsEscape($str) { $strEscape = preg_replace('#</?script[^>]*>#ie', 'htmlspecialchars("$0")', $str); return $strEscape; } ob_start(); ?> <pre> <script language="javascript"> function FF () { document.write("<script></script>"); } </script> </pre> <? $str = ob_get_clean(); $str = jsEscape($str); echo $str; ?>
PHP: <?php $string = '<html> <head> <script language="javascript"> document.write("<script></script>"); </script> </head> <body> TEXT <script type="text/javascript">alert("123");</script> <br />TEXT <script>alert("234");</script> <br />TEXT <scr<script></script>ipt type=""></script> </body> </html>'; function remove_js($string) { $js_reg = '~[^"\'](<script[^>]*>.*?</script>)[^"\']~is'; while (preg_match($js_reg, $string, $out)) $string = str_replace($out[1], '', $string); return $string; } print remove_js($string); ?>