2012-09-30 43 views
0

正如标题中提到的,我正在构建内容管理系统,并且正在尝试将图案化的网址加入到系统中。 作为其中的一部分,可以将模块分配给基本句柄,然后将参数传递给它。PHP内容管理系统网址模式匹配

使用正则表达式我想匹配URL并能够从中提取通配符信息。 一般格式如下。

http://i3network.net/module/ 
http://i3network.net/module/action/ 
http://i3network.net/module/action/id/ 
http://i3network.net/module/action/id/subaction/ 

我目前正在通过使每个模块4的正则表达式(已启用此功能)运行此从数据库加载并单独检查。

我遇到的问题是表达式匹配第一个,然后不通过顺序继续。

这是我目前正在使用的第一级表达式。

/^module\// 

任何帮助,非常感谢!

+2

而不是正则表达式,为什么不''爆炸('/',$ uri)'并提取每个如果它存在? –

+0

你使用Apache(htaccess)来处理重定向吗? – ryanve

+0

@Michael:2个原因;这个检查是从数据库完成的,我把表达式从数据库拉到ch eck他们,我不希望它在任何时候爆炸点都等于模块名称时总是匹配。 – ajdi

回答

0

我使用/^photography$//^photography\/([a-zA-Z0-9_-])*$/,并且/^photography\/([a-zA-Z0-9_-])*\/([a-zA-Z0-9_-])*/确认使用哪个模块(与另一人([a-zA-Z0-9_-])*\/每个级别更深,然后/^photography\/(.*?)//^proofs\/(.*?)\/(.*?)/获得“行动”和“身份证(additionally with another /(.*?) /`为每个子动作更深入。它都在PHP中处理 - 我从数据库中获取所有表达式,然后通过它们循环。