在PHP(/class/method/x/1/y/1/z/1/)中解析到变量的奇特URL

在PHP(/class/method/x/1/y/1/z/1/)中解析到变量的奇特URL,php,Php,我相信有人已经这样做了,并希望有人可以分享一些代码 我们已准备好以下.htaccess文件: RewriteEngine on RewriteBase / RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php 这与Zend使用的相同。我们正试图模仿Zend的URL结构。我们会使用Zend,但我们离自己的框架还有很长的路要走 我们要完成的是解析如下所示的url: http://www.test.com/a/b/x/1/y/1/z/1 为此

我相信有人已经这样做了,并希望有人可以分享一些代码

我们已准备好以下.htaccess文件:

RewriteEngine on
RewriteBase /
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
这与Zend使用的相同。我们正试图模仿Zend的URL结构。我们会使用Zend,但我们离自己的框架还有很长的路要走

我们要完成的是解析如下所示的url:

http://www.test.com/a/b/x/1/y/1/z/1
为此:

$class = 'a';
$method = 'b';
$x = 1;
$y = 1;
$z = 'a';

我可以编写最终的解决方案来根据数字确定字符串,但我希望有人已经这样做了,并且愿意与大家分享。

当您已经有了URL的路径时,您可以这样做:

$path = '/a/b/x/1/y/1/z/1';
$segments = explode('/', trim($path, '/'));
for ($i=0, $n=count($segments); $i<$n-1; ++$i) {
    ${$segments[$i]} = $segments[++$i];
}

当您已经拥有URL路径时,可以执行以下操作:

$path = '/a/b/x/1/y/1/z/1';
$segments = explode('/', trim($path, '/'));
for ($i=0, $n=count($segments); $i<$n-1; ++$i) {
    ${$segments[$i]} = $segments[++$i];
}