Mar 21

Собственно, возникла проблема - заказчик хочет на сайте URL’ы определенного вида. Всё бы ничего - но то, что он хочет очень сильно расходится с тем, как работает сам сайт. Так вот, задание таково - нужно написать регулярку, которая бы выдавала true на всё, не включая (account|comment|user). В принципе регулярку такую я составил: /(?!(account|comment|user))/. Проблема в том, что рутинговая система накладывает свои ограничения на регулярки, а точнее приписывает к ним слева и справа свою фигню: '#^(?:\\/(<вот сюда можно вставлять всё, что угодно>))?$#'. Вопрос таков - можно ли что-то вставить в средину последней регулярки так, чтобы она вела себя как и моя, описанная выше. Если да - подскажите, что вставлять, а нет - так нет, буду через mod_rewrite решать проблему.

written by fxposter

One Ping to “Регулярка”

  1. Symfony 1.1 » Блог FX'а Says:

    […] Переписан класс routing’а. Теперь все пути кешируются + от этого класса можно отнаследоваться и переделать, от чего бы я не отказался. […]


4 Responses to “Регулярка”

  1. 1. vlarine Says:

    Там точно такая штука: “\\/”, может просто “\/”?

    Вообще-то должно работать что-то типа:
    #^(?:\/(.*(account|comment|user).*))?$#
    Но проверять не на true, а на false

  2. 2. FX Poster Says:

    1. Точно.
    2. Если бы я мог проверять не на true, а на false – я бы и не написал этот пост.

  3. 3. odalex Says:

    может стоит взять из Zend Framework их класс-разборщик URLов?
    он отлично может работать без всего фреймворка..

    ну или посмотреть как он устроен

    http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.basic

  4. 4. FX Poster Says:

    Эмм. Зачем? Я эти условия придумал не просто так – у меня есть Symfony. Нафига мне менять симфонийский рутер на зандовский? Мне просто нужна такая регулярка, которая подходила бы по условию… Пока я её не нашел, и, судя по всему, буду решать задачу по другому.

    PS. Сама Symfony здесь не причем, просто заказчику уж очень нестандартный способ рутинга понадобился.

Leave a Reply