(роутинг) Как составить регулярное выражение ...

Не о CI, но о PHP, интерфейсах и веб-проограммировании

(роутинг) Как составить регулярное выражение ...

Сообщение Skiss » 17 сен 2009, 17:38

В $route['...'] пишется регулярное выражение, по которому будет определятся, делать перенаправление или не делать... Как написать, чтоб роутинг делался для всех URL адресов, кроме начинающихся с определенного слова?

Пример:
Пусть это слово "items".
Тогда для "contacts", "item", "asdasda" - делать роутинг;
а для "items", "itemsasdasd", "items/id" - не делать.
Skiss
 
Сообщения: 14
Зарегистрирован: 25 апр 2008, 01:41

Re: (роутинг) Как составить регулярное выражение ...

Сообщение Tovit » 17 сен 2009, 21:23

Код: Выделить всё

$route
['items(.+)'] = 'items$1';
$route['(.+)'] = 'same/$1';
 

http://beta.delta-z.com/sintaksis-regul ... ravochnik/
Фантазия! Фантазия! Она поможет... не форум!
Аватара пользователя
Tovit
Модератор
 
Сообщения: 1230
Зарегистрирован: 15 фев 2009, 17:18

Re: (роутинг) Как составить регулярное выражение ...

Сообщение Skiss » 18 сен 2009, 01:39

Не, так после первого роута сработает второй, и будет то же самое, что и без первого.

На всякий случай проверил - не работает как нужно.
Skiss
 
Сообщения: 14
Зарегистрирован: 25 апр 2008, 01:41

Re: (роутинг) Как составить регулярное выражение ...

Сообщение Tovit » 18 сен 2009, 11:31

странно, срабатывает первый подходящий...
Другой вариант -- единый контроллер который определяет что делать.
Фантазия! Фантазия! Она поможет... не форум!
Аватара пользователя
Tovit
Модератор
 
Сообщения: 1230
Зарегистрирован: 15 фев 2009, 17:18

Re: (роутинг) Как составить регулярное выражение ...

Сообщение Skiss » 18 сен 2009, 15:39

Tovit писал(а):странно, срабатывает первый подходящий...

Я смотрел ф-ю, которая отвечает за это, там в цикле перебираются все значения массива $route.

Tovit писал(а):Другой вариант -- единый контроллер который определяет что делать.

Это вариант мне не нравится, т.к. получается какая-то непонятная структура проекта.


Вообщем нашел ответ:
$route['((?!items).*)'] = "same/$1";
Skiss
 
Сообщения: 14
Зарегистрирован: 25 апр 2008, 01:41


Вернуться в Общие вопросы по PHP и веб-программированию

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0