我正在尝试创建一个SQL过滤系统,当请求包含任何包含的单词时通知用户。
目前我的正则表达式仅支持所有大写&我想知道是否有可能让它也接受非上限以及其他字母组合,例如SElEcT
我知道可以手动输入,但是,这不是执行此类任务的最有效方式。
这是我目前的代码:
function checkString($string)
{
if(preg_match('[SELECT|FROM|DATABASE|TABLE|DROP|ALTER|LIKE|IN|BETWEEN|UNION|NULL|CHECK|JOIN|AVG|SUM|COUNT|FIRST|LAST|MAX|MIN|GROUP]', $string
感谢。
答案 0 :(得分:6)
使用i
修饰符(使正则表达式不区分大小写。):
if(preg_match('/(SELECT|FROM|DATABASE|TABLE|DROP|ALTER|LIKE|IN|BETWEEN|UNION|NULL|CHECK|JOIN|AVG|SUM|COUNT|FIRST|LAST|MAX|MIN|GROUP)/i', $string