filin
(Limmenz)
May 30, 2010, 4:09am
1
Хочу иметь ссылки вида site.ru/2010/05/30/новый-пост
Составляю вот такое правило:
'<year:\d{4}>/<mon:\d+>/<day:\d>/<slug:[-a-zа-я0-9]+>'=>'post/view'
И получаю вот такую ошибку: Unable to resolve the request "2010/05/30/новый-пост". При этом, если краткое название поста состоит из латинских букв - всё проходит нормально и без ошибок. Каким же образом правильно составить регулярное выражение?
Mougrim
(Rinat)
May 30, 2010, 1:00pm
2
тут скорее всего проблема с кодировкой, стандартные функции php не совсем правильно работают со строками в UTF-8.
можешь проверить strlen(новый-пост); - выдает не правильный результат, а strlen(new-post); - правильный.
Подробнее, как с этим бороться http://http ://www.yiiframework.com/doc/cookbook/16/revision/8/, там пункт "5. PHP string functions".
filin
(Limmenz)
May 30, 2010, 3:18pm
3
Спасибо за помощь. Не хотел пользоваться mbstring, но теперь, похоже, придётся попробовать.
А пока, в качестве временного решения, транслитерирую краткое имя поста.
filin
(Limmenz)
May 30, 2010, 4:08pm
4
Пардоньте, нашёл свою ошибку:
Не указал квантификатор у параметра day. Поэтому корректно обрабатывались только посты, день создания которых состоит из одной цифры
raa
(Rudenkosasha)
May 30, 2010, 9:07pm
5
filin:
Пардоньте, нашёл свою ошибку:
Не указал квантификатор у параметра day. Поэтому корректно обрабатывались только посты, день создания которых состоит из одной цифры
хм, ошибку с датой сразу заметил, но не думал что она связана с вашей проблемой )
знал бы, сразу указал