![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| WolfON |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Есть:
Надо получить значение path и все переменные и их значения. Для этого я сделал два регекспа:
Это, конечно, работает, но хочется каким-то образом сделать один регексп, а следовательно окончательно разобраться как они формируются |
||||
|
|||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 1 Всего: 22 |
похорошему!
делается так! ищется ПЕРВЫЙ : отсекается (с проверкой без сохранением и т.д.) explode(';', + foreach list($varname, $varvalue) = explode('=',trim($str)) Добавлено через 1 минуту и 26 секунд БЕЗ ВСЯКИХ РЕГЭКСП уж поверь, я знаю что это такое, и успешно использую. но в случае чего написал бы так |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Тестирование показало, что время выполнения обычного кода: 0.67 * 10-4 сек, а кода с регекспом 1.25 * 10-4
Сделают по-обычному ) Но вопрос, про вложенность регекспа остается открытым |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 1 Всего: 22 |
strtok еще в руку!
если не трудно, самому интересны результаты бенчмарка а сосстна, так и оставить два регэспа ну.... в одной книжке мужик развивает тему до того, что по хорошему, надо бы тогда регэксп ВИДА
потом lookup получившийся массив |
|||
|
||||
| WolfON |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Значние в path такой регексп вообще игнорирует, а параметры массивом не делает =/ |
||||
|
|||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 1 Всего: 22 |
ну дык!
сами добавите где надо модификатор "?" ??? |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Ничонепонимаю
Давайте разберем регексп по полочкам, мб я что-то пойму )
Разбираем: Берем строку, заключенную в "Set-Cookie: " " path=", после может-быть любой набор символов (.*), составляющих слово(.*?), повторяющихся 0 или 1 раз (?) Внутри этой строки - берем конструкцию, которая повторяется 0 и более раз (*) Конструкция состоит из двух слов (.*?), разделенных знаком "=" и оканчивается ";" Ко всему выражению применены модификаторы i - нечувствительность к регистру и s - метасимвол "." включает переносы строки Звучит убедительно, или я не прав? |
|||
|
||||
| Vaulter |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 1 Всего: 22 |
звучит убедительно но знания частичны
читаем http://se.php.net/manual/ru/reference.pcre...tern.syntax.php
то есть под паттерн к сожалению паттерн на проверку не рабоч. и как я не колдовал заставить его стать онным не хватило терпения. Добавлено через 13 секунд звучит убедительно но знания частичны читаем http://se.php.net/manual/ru/reference.pcre...tern.syntax.php
то есть под паттерн к сожалению паттерн на проверку не рабоч. и как я не колдовал заставить его стать онным не хватило терпения. |
||||
|
|||||
| xolod |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: 3 Всего: 13 |
У кук, между прочем, есть вполне себе официальный RFC. А регулярное выражение для правильного разбора и валидации еле-еле влезает в мой немаленький монитор :-).
Решить можно, например, так:
Это сообщение отредактировал(а) xolod - 22.4.2007, 20:58 |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Понял свою ошибку - начал судить о всех куках по одному примеру, а зря )
Регексп интересный - просветляюсь ) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |