我正在嘗試爲PHP編寫一個簡單的路由器。而我正面臨一些問題。路線的例子如下。正則表達式解決方案來查找正則表達式模式並解析它。
$route = []
$route['index'] = "/";
$route['home'] = "/home";
$route['blog'] = "/blog/[a-z]";
$route['article'] = "/article/id/[\d+]/title/[\w+]";
現在,如果我們把最後一個例子,我想正則表達式只尋找模式,如[\d+]
和[\w+]
,就是這樣。我將使用explode()
實際交叉檢查URL是否包含/blog/
,/id/
和/title/
。我不希望正則表達式的幫助,但只是爲了檢測模式並匹配它。例如
。如果給定$URL
是dev.test/blog/id/11/title/politics
我需要一些像:preg_match($route['url'], $URL)
所以,現在preg_match()
功能都知道,"/article/id/
後有要求僅出現一個數字的模式,那麼如果數字被發現它將繼續解析,否則它將顯示失敗或0
。
我不太瞭解正則表達式來處理這個複雜的問題。
如果你有一個正則表達式煩惱的位置,也許你可以使用一些已經會爲你喜歡Laravel?或者使用[本視頻](https://www.youtube.com/watch?v=6reEBParHzQ)或[本文](http://www.kratedesign.com/blog/2010/03)中所述的路由解決方案/ php-router-and-clean-urls /) – Laoujin
@Lououjin你說得對。我甚至可以使用FastRoute。但問題是,對於小規模項目來說,這些替代品是過度殺傷性的。 –
有關正則表達式模式的正則表達式模式,展開爲正則表達式模式! – JakeGould