![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| prototype |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 19.7.2010 Репутация: нет Всего: нет |
Добрый вечер
Можно ли в php жадной регуляркой рекурсивно выполнять поиск и замену совпадений? Например, как такой bb-код...
...превратить в:
Использую такую регулярку:
Но вложенный тег не конвертируется. Хелп? |
||||||
|
|||||||
| CruorVult |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 868 Регистрация: 24.9.2008 Где: г.Киев, Украина Репутация: нет Всего: 28 |
можно просто:
|
|||
|
||||
| prototype |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 19.7.2010 Репутация: нет Всего: нет |
Простая замена не совсем подходит, т.к. у bb-кодов могут быть атрибуты ([quote=username]) и, к тому же, хотелось бы вылавливать все незакрытые теги - из-за незакрытого div'а может поплыть весь шаблон. Можно прогонять регулярку циклом до тех пор, пока не количество замен не станет равным нулю, но тут я сталкиваюсь с еще одной проблемой: жадный вариант тоже не катит в случае с последовательными (невложенными) тегами - найдет не свою пару. Получается нужна вроде как нежадная регулярка с поддержкой рекурсии. Есть идеи?
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
preg_replace_callback
+ регулярка \[/?[^\]+]\] + стек внутри callback функции |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |