我非常接近我想实现的目标。允许多个URI参数通过正则表达式
我有这样的:
'/create-group/([A-Za-z0-9\-\_]+)(?:/([A-Za-z0-9\-\_]+))?(?:(\?|&)(groupid|copyofgroup|ref)=([A-Za-z0-9\-\_]+))?'
它让我能阻止URL可以被输入和访问,如:
/create-group/123/456?groupid=789
在正则表达式的最后一位,我让3参数(groupid,copyofgroup和ref)。
这是一切都好,但我不能找出一种方法让我的preg_match验证这3个参数的无限数。现在,我只限于一个参数的实例。
我想我的preg_match()接受:
/create-group/123/456?groupid=789&ref=101112©ofgroup=789
我试过乘如*
和+
,但无济于事。
谢谢!
为什么使用正则表达式而不是'$ _GET','$ _POST'或'$ _REQUEST'超全球变量? –
@Nordenheim我不确定你的意思?在获取相关文件之前,此代码位于顶层。我只想限制可以在URI中插入哪些参数。 $ _GET superglobals将如何帮助我? – Justin01
用'[[:alnum:] _-]'替换'[A-Za-z0-9 \ - \ _]'。角色在方括号内失去了他们的特殊性,所以你不需要用反斜杠来逃避事物,而在任一端的破折号意味着一个破折号而不是一个范围分隔符。而角色类就是合理的。 – ghoti