#regex #routes #codeigniter-3
#регулярное выражение #маршруты #codeigniter-3
Вопрос:
Мне нужен способ группировать URL-адреса в одной группе до конца с чем-то, что мне нужно, чтобы получить все активные фильтры
http://my.website/phones/filter/attribute-id1,attribute-value-id1/attributer-id2,value-id2/c
И у меня есть РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ для получения фильтров, нажмите здесь
$route['(:any)/(:filter/(.*)/c)/c'] = 'test/$1/$2';
Я пробовал это, но не работает.
- Телефон должен войти в первый параметр
- Все после ‘filter’ до конца с /c переходит к параметру 2
Я не уверен, ясно ли я.
Любой может мне помочь: D
Обновить
function test($category, $filters) {
print_r($category); // phones
print_r($filters); // attribute-id1,attribute-value-id1/attributer-id2,value-id2
}
Комментарии:
1. Пожалуйста, покажите желаемый результат для входной строки.
Ответ №1:
Что-то вроде этого может помочь:
http://my.website/([^/] )/filter/(. )/c
1-я группа будет совпадать phones
, 2-я группа будет совпадать attribute-id1,attribute-value-id1/attributer-id2,value-id2
.
Комментарии:
1. Я использовал этот $route[‘([^/] )/ filter/(. )/c’] = ‘test/$1/ $2’ И все равно разделяется на ‘/’ Вторая группа дает — атрибут-id1, атрибут-значение-id1 Третийгруппа дает — атрибут-id2, значение-id2