Может ли кто-нибудь сказать мне, как я это сделаю. У меня 3 строки.Сравнить строки и извлекать переменные?
$route = '/user/$1/profile/$2';
$path = '/user/profile/$1/$2';
$url = '/user/jason/profile/friends';
Что мне нужно сделать, это проверить, соответствует ли URL-адрес маршруту. Я пытаюсь сделать это следующим образом.
$route_segments = explode('/', $route);
$url_segments = explode('/', $url);
$count = count($url_segments);
for($i=0; $i < $count; $i++) {
if ($route_segments[$i] != $url_segments[$i] && ! preg_match('/\$[0-9]/', $route_segments[$i])) {
return false;
}
}
Я предполагаю, что регулярное выражение работает, это первое, что я когда-либо писал. : D
Здесь я застреваю. Как сравнить следующие строки:
$route = '/user/$1/profile/$2';
$url = '/user/jason/profile/friends';
Так что я в конечном итоге с:
array (
'$1' => 'jason',
'$2' => 'friends'
);
Я полагаю, что с этим массивом я мог бы тогда str_replace эти значения в переменной $ PATH?
Мне нравится это решение, его простое и точное. Спасибо за подсказку в регулярном выражении. – JasonS 2010-11-24 16:40:16