在这里完成PHP新手试图掌握文字和逃脱,所以事先道歉这是如此基本。我在preg_match
上已经阅读了很多问题,但似乎都没有解决这个问题。
我有一个旧表单,其中包含使用双引号的已弃用eregi()
函数的实例:
eregi("\n", $s)
eregi("%0a", $s)
这两行是检查注射字符的较长行的一部分。
如果我使用分隔符和尾随preg_match
将函数更新为i
,请执行以下操作:
preg_match("/\n/i", $s)
preg_match("/%0a/i", $s)
我现在是否还需要使用自己的反斜杠来逃避\
和/或%
?
由于
答案 0 :(得分:0)
我建议使用管道preg_match()
将所有无效字符合并为一个调用,而不是运行多个|
调用。
在您的情况下,无需转义,您可以使用:preg_match(/\n|%0a/,$s)
如果您想添加更多列入黑名单的字符,可以在https://regex101.com/
上根据您自己的示例输入测试您的模式最后,如果您不一定要阻止传入的数据,但希望删除列入黑名单的字符,则可以使用preg_replace()。