我非常接近我想實現的目標。允許多個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