我想写一个解析URL的路由器,比如我给它规则,然后我想有一个基于名称的数组。
======
编辑时间:
所以我确实稍微重写了一下代码可以在此处找到新代码:http://pastebin.com/Ver601FF
结果如下:http://img824.imageshack.us/i/phpprob.png/
我现在不知道如何根据数组中的正则表达式匹配url值,该数组具有第二个路由参数所具有的索引。
==============================编辑停止==================最后我想要一个数组:
$request['controller']
$request['action']
作为基本的$request参数,因为我一直都需要它们——因此这必须是我的标准/默认路线。
假设$pattern[2]正在发生,当我完成这个可怕的正则表达式时,我希望得到这个:
$request['controller']
$request['action'] = show
$request['id']
$request['name']
显然,所有内容都必须根据请求的url进行相应的填充。。。
它不知道是不是因为太晚了,但我不知道该如何匹配这些东西。
我需要拆分url吗?在我检查它是否与路线匹配之后?然后用他们各自的价值观来工作。
另一个我不知道解决方案的问题是,像这样的url
必须把之类的东西还给我
$request['controller'] = information
$request['action'] = show
$request['params'] = array(some, other, stuff)
我感谢任何形式的帮助,并希望有人能帮助我摆脱这个麻烦:(
事先非常感谢。
$regex .= "[a-zA-Z]'/";
应该是
$regex .= "[a-zA-Z]+'/";
第一个匹配一个字母。第二个匹配一个或多个。
此外,你的斜线在错误的位置([]/[]/
对/[]/[]
(,你的比赛没有被锚定。
...
$regex .= "'/[a-zA-Z]+";
...
$regex .= "'/" . $route;
...
print_r(preg_grep("/^" . $patt . "'z/i", $url));
...
我自己找到了问题的答案——我希望它能帮助到其他人。但我甚至可能在稍微更新一下后在某个地方发表它。
查看解决方案:http://pastebin.com/FAbhneMZ
我现在要重写它,并从中产生一个合适的类,如果有人认为这个小路由器中的逻辑可以改进,请告诉我!
所有最好的人。
编辑更改了链接,因为那个版本仍然有缺陷,不好,这是我使用的最终解决方案,经过两天的测试,我认为它正按照我需要的方式工作。希望它能帮助其他人!