我制作了一个正则表达式来从导入的页面中删除脚本标记。(使用过的卷曲)<script['s'S]*?/script>
这是我的快递
当我使用它与preg_replace一起删除标签时,它给了我这个错误
警告:preg_replace()[function.preg replace]:第21行c:''examplep''htdocs''get_page.php中的未知修饰符"c"
有人能帮我吗
感谢
您应该为正则表达式选择一个合适的分隔符(最好是不出现在模式中任何位置的分隔符,这样您就不需要转义)。例如:
"#<script['s'S]*?/script>#"
此外,如果您试图防止恶意人员将Javascript注入您的页面,请不要这样做。它可以很容易地绕过。使用已知安全构造的白名单,而不是试图删除危险的代码。
PHP需要RegExp模式上的分隔符。此外,你的表达也可以简化。
|<script.+/script>|
您是否用正斜杠包装regexp?
$str = preg_replace('/<script['s'S]*?'/script>/', ...);
是否用分隔符(如/
)包围正则表达式?如果你没有,你需要。如果你使用了/
(而不是其他选择),你需要在/script
中逃离/
,所以它看起来像'/script
。
使用以下代码:
$result = preg_replace('%<script['s'S]*?/script>%', $change_to, $subject);