1
我正在为PHP的路由系统(语言对问题不敬)。检查url是否匹配模板
我的路线是这样的数组:(实际计划每条路线都有它是否匹配时运行的回调)
[
'/',
'/posts/{id}',
'/posts/{year}/{month}',
'/about'
]
什么是我可以采取URL的最佳方式,说/posts/2b45v21
并从数组中获得最接近的匹配路线?
给定输入/posts/2b45v21
,它应该匹配/posts/{id}
而不是/
或/posts/{year}/{month}
。
我尝试了一些方法用正则表达式,如转换{...}
到.*?
,然后逃逸所有反斜杠,但我不是一个会不匹配/
。
我认为最好的方法是循环遍历所有路线并找到最接近匹配的路线,但问题是如果没有匹配,它可以默认为/
(例如,输入/page/1
真的应该返回没有匹配,但最接近'/')
转义反斜杠... – t0mm13b