php - разобрать дружественный URL - PullRequest
0 голосов
/ 14 августа 2010

У меня есть такой URL

/cp/foo-bar/another-testing

как разобрать его с шаблоном

/cp/{0}-{1}/{2}

Результаты будут

0:foo
1:bar
2:another-testing

Мне нужно глобальное решение для анализа всех видов URL с таким шаблоном. Я имею в виду использование флага {0}, {1}.

Ответы [ 2 ]

2 голосов
/ 14 августа 2010
if (preg_match('#/cp/([^/]+?)-([^/]+?)/([^/]+)#'), $url, $matches)) {
    //look into $matches[1], $matches[2] and $matches[3]
}
1 голос
/ 14 августа 2010

Вместо использования {0}, {1}, {2} я предлагаю новый способ: использование {$s[0]}, {$s[1]}, {$s[2]}:

$your_url = '/cp/foo-bar/another-testing';
$s = explode('/', $your_url);
if(!$s[0])
     array_shift($s);
if($temp = array_pop($s))
     $s[] = $temp;
//then
$result = "/cp/{$s[0]}-{$s[1]}/{$s[2]}";
...