Разбор необычного URL к переменным в PHP (/ class / method / x / 1 / y / 1 / z / 1 /) - PullRequest
1 голос
/ 09 сентября 2009

Я уверен, что кто-то уже сделал это, и надеялся, что кто-то может поделиться каким-то кодом.

У нас есть следующий файл .htaccess:

RewriteEngine on
RewriteBase /
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php

Это то же самое, что использует Zend. Мы пытаемся эмулировать ту же структуру URL, что и Zend. Мы бы использовали Zend, но мы далеко в наших собственных рамках.

То, чего мы хотим достичь, это разобрать URL, который выглядит так:

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

к этому:

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

Я могу написать окончательное решение для определения строк по числовым значениям, но надеялся, что кто-то уже сделал это и готов поделиться.

1 Ответ

5 голосов
/ 09 сентября 2009

Если у вас уже есть путь к 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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...