1
我正在爲PHP的路由系統(語言對問題不敬)。檢查url是否匹配模板
我的路線是這樣的數組:(實際計劃每條路線都有它是否匹配時運行的回調)
[
'/',
'/posts/{id}',
'/posts/{year}/{month}',
'/about'
]
什麼是我可以採取URL的最佳方式,說/posts/2b45v21
並從數組中獲得最接近的匹配路線?
給定輸入/posts/2b45v21
,它應該匹配/posts/{id}
而不是/
或/posts/{year}/{month}
。
我嘗試了一些方法用正則表達式,如轉換{...}
到.*?
,然後逃逸所有反斜槓,但我不是一個會不匹配/
。
我認爲最好的方法是循環遍歷所有路線並找到最接近匹配的路線,但問題是如果沒有匹配,它可以默認爲/
(例如,輸入/page/1
真的應該返回沒有匹配,但最接近'/')
轉義反斜槓... – t0mm13b