07.01.2016, 03:57
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Яростный Меч
|
У меня тоже решена, правда, на скорую руку примитивным способом, но тут можно допилить работу со стеком, и сделать по нормальному, не меняя общий подход. Не получится только игнорировать открывающий тег, для которого нет закрывашки, т.к. нет заглядывания вперед.
|
Нужно описать правила, без них не получится, это непарные теги, например IMG, это вложения для таблиц и списков, если таковые теги разрешены, и т.п.
|
|
07.01.2016, 04:06
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
laimas,
Однотеговых BB-кодов мало <br> <img> [you] (часто есть - имя юзера)
Они парсятся первыми, замечание справедливое, но я описал, что выходная функция HTML тегов должна быть в итоге привязана к объекту выходных функций по тегам, ибо часто теги преобразуются в многотеговые конструкции HTML
Опять же и атрибуты меняют итоговый код HTML
Последний раз редактировалось Deff, 07.01.2016 в 04:09.
|
|
07.01.2016, 04:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Deff
|
Однотеговых BB-кодов мало <br> <img> [you] (часто есть - имя юзера)
|
Ну так они есть Использование принципа работы стека, это старая и удобная идея для таковых разборов, и без правил не получится, ну если только разрешено использование простейших html-тегов.
|
|
07.01.2016, 04:26
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
laimas,
Вообще тема интересная, рыл тут четыре дня, вот лучший пост был этот от devote (Были пару интересных импортных постов, но там код для анализа ошибок на страницу
Думаю в принципе, задача поиска без ошибок без движения челноком по строке (ищем закрывашку и идём от нёё вверх к открывашке) решается весьма трудоёмко. Пока реальных кодов с учётом всех ошибок мизер..
Последний раз редактировалось Deff, 07.01.2016 в 04:31.
|
|
07.01.2016, 04:36
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Да, были темы на форуме по использованию принципа стека, правда не в контексте ВВ, но суть та же.
Сообщение от Deff
|
Думаю в принципе, задача поиска без ошибок без движения челноком по строке
|
Ну как сказать, ведь и браузеру нужно переварить строку содержащую html-код, и он тоже поступит так же, но и обязательно по правилам. При этом есть "любезые" браузеры закрывающие тег, если допущена ошибка, а есть и не делающие такой медвежей услуги. Например, под FF видно, что-то не то, а причины не понять, а оплеванный ослик в своем отладчике сразу показал ошибку, ибо он не закрыл тег за нерадивым исполнителем. )
Если подумать, то думаю можно использовать стек и как источник "места" ошибок, делать откат и удалять некорректное.
|
|
07.01.2016, 04:40
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
laimas,
Ну в итоге, совместно с куском от dеvote мой скрипт парсит быстее - проверил на мегабайте BB-кодов (Правдо мало вставлял лишних квадратных скобок, спецом ошибок в BB-кодах 20% (если интересно завтра выложу тест
|
|
07.01.2016, 04:44
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Выкладывайте, правда ВВ код можно обработать и на сервере, и для этого есть готовое на Cи. Я не сторонник взваливать все на клиента. )
|
|
07.01.2016, 04:48
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
laimas,
Тут идея скрытого текста небольших сообщений обмена между "маффами", поскольку после кодирования(при отправке) и скрытия сообщения уже не прочесть(ессенно и серв не парсит кодированное) (а общение через личку - сильно много телодвижений, а тут видит конкретный чел) Обычно играют в чате - но уменя все чаты сторонние, и там тож личка - долгая песня, и не видно всех сообщений, а в форуме сразу вся страница и скрытое-невидимое остальным, меж общим кругом общения
Последний раз редактировалось Deff, 07.01.2016 в 04:53.
|
|
07.01.2016, 05:10
|
Профессор
|
|
Регистрация: 12.04.2010
Сообщений: 557
|
|
Вопрос: вот такая строка во что должна превращаться?
1[b]2[u]3[/b]4[/u]5
в идеале, как мне кажется, "1<b>2<u>3</u></b><u>4</u>5"
по крайней мере на этом форуме именно так работает
|
|
07.01.2016, 05:13
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Яростный Меч
|
Вопрос: вот такая строка во что должна превращаться?
12345
|
Здесь ошибка вложения, и по хорошему нужно игнорировать такое, а не догадываться чего хотят и исправлять.
|
|
|
|