sza*_*kel 3 php uri front-controller match
我正在研究一个简单的前端控制器,主要用于学习目的.
我喜欢Symfony的路由方式,在你的地图中有这样的模式:/news/{category}/{id}
并将类别和id变量传递给控制器.但我的问题是 - 因为我无法使用RegEx - 我不知道,如何将模式匹配到URI.
我该怎么配?
/news/{category}/{id}
Run Code Online (Sandbox Code Playgroud)
至
/news/tech/5784
Run Code Online (Sandbox Code Playgroud)
我应该允许这样的模式:/news/*
- 哪里*
匹配一切?或者变量与某些垃圾混合在一起,像这样/news/{category}_ex/14{id}
?
获取变量和值并不是问题,但是为匹配编写正则表达式是.
提前谢谢你的帮助
最简单的是使用(正则表达式)命名的子模式.
$regex = '#^/news/(?P<category>[a-z0-9]+)/(?P<id>[0-9]+)$#';
$path = '/news/tech/5784';
if (preg_match($regex, $path, $matches))
{
$matches['category'] === 'tech';
$matches['id'] === '5784';
}
Run Code Online (Sandbox Code Playgroud)