bbcode -> html, а как обратно ?

mTzen

Новичок
bbcode -> html, а как обратно ?

Здраствуйте,

Освоил работу с bbcode-ом, все ясно все работает прекрасно, добовляю новости на сайт без проблем.

Но столкнулся с такой проблемой, что когда необходимо редактировать новость, что мне выдает текст уже в html тегах, а хотелось бы чтобы все возврщалось в bbcode.

Возможно ли это сделать и как это осуществить?

Спасибо.

З.ы. ббкод брал тут: http://www.pc.uz/publish/doc/text10973_parser_bbcode_na_php
 

dimagolov

Новичок
храни и с bb (для редактирования) и html (для быстрого вывода без подстановки bb для каждого отображения)
 

Духовность™

Продвинутый новичок
mTzen
1. не надо заменять bb на html перед записью в базу. так никто не делает. замену bb на html делают при выводе сообщения

2.
добовляю новости на сайт без проблем
новости на сайт обычно добавляют в html, зачем их добавлять в bb???? ты вообще понял, зачем нужны и bb теги и для КОГО они придуманы?


dimagolov
зачем такой геморрой?
 

Вурдалак

Продвинутый новичок
Автор оригинала: triumvirat
dimagolov
зачем такой геморрой?
Геморроя тут нет, это вполне удобно, просто места занимать будет в 2 раза больше.

-~{}~ 11.01.10 23:26:

Если парсер bb-тегов действительно ресурсоёмкий, то я бы скорее всего сделал так же.
 

dimagolov

Новичок
вопрос не в ресурсоемкости парсера, а как часто его будут запускать. если за раз запрашивают пару десятков сообщений, а таких запросов сотни в секунду, то парсер будет вызываться тысячи и десятки раз в секунду. даже если он быстрый, то избавление от его вызова может существенно сократить нагрузку, создаваемую при отображении.
 

Духовность™

Продвинутый новичок
Не говори за всех.
Сочувствую. Посмотри в сторону движков, использующих bb код и погляди, как там реализовано всё это.

Одно из основных достоинств BB-тегов, помимо исключения возможности хакать юзером - это независимость данных от формата конечного вывода. Текст в bb-тегах можно вывести в html, в word, куда угодно. Можно изменить при выводе тег заголовка [ h1 ], сделав его шестым уровнем, болдом, добавить стиль, цвет, обрамить в другой html и т.д. Для этого достаточно изменит автомат или регулярное выражение. Поэтому, преобразование bb в html при записи - это урезание возможности всей мощи альтернативной разметки.

А писать программу, которая конвертирует bb в html, а потом обратно - это маразм.
 

zerkms

TDD infected
Команда форума
какой смысл в создании избыточного поля, когда есть кеширование: унифицированное хранилище для всех ресурсоёмких вычислений? какой смысл уходить в частности, когда в приложении так и так почти наверняка реализовано общее решение?
 

Активист

Активист
Команда форума
triumvirat
Какая мне разница, какой там движек и я не знаю кто его писал.

Логичнее - брать уже обработанные данные единыжды, чем обрабатывать их постоянно, ресурсы системы ограниченны. Представь, что у тебя 100 уников одновременно посмотрела страницу из 100 сообщений, в каждом по десятку BB кодов, сколько CPU отожрет только твой парсер?

Закешировать? А если проект типа Li.Ru? Такие объемы быстро кешировать накладно...

По твоему, картинку ресайзенную можно и не кешировать до миниатюр, а просто, ресайзить "на лету", ведь ее можно будет тогда ресайзить до любых нужных размеров в любой момент.

> автомат или регулярное выражение
Регулярные выражения отжирают очень много, мыло валидировать - есть резон, а вот постоянно отжирать CPU на тысчи повторов типичных задач - непростительная расточительность.

//
Да и вообще, в чем смысл BB кодов? Юзаю везде fckEditor Basic, хорошо валедируя и чистя полученные данные, я не задумываюсь о проблемах. DOM дает очень много возможностей и сводит к нулю все хаки, да и Tidy не плох.

>[ h1 ], сделав его шестым уровнем
А разницы между [ h1 ] и < h1 > я вообще не вижу. За исключением того, что [ ] мне дадут больше проблем, нужно будет придумывать велосипед, когда, <h1> я могу обрботать через обработчики того же XML или опять же DOM'а
 

zerkms

TDD infected
Команда форума
Закешировать? А если проект типа Li.Ru? Такие объемы быстро кешировать накладно...
т.е. "закешировать" костыльной денормализацией прямо в базе это хорошо, а закешировать в файл - это плохо.
ок, так и запишем.

По твоему, картинку ресайзенную можно и не кешировать до миниатюр, а просто, ресайзить "на лету", ведь ее можно будет тогда ресайзить до любых нужных размеров в любой момент.
не по-моему. я этого не говорил и на это не намекал.
цитировать себя же не буду - можешь прочитать мой коммент ещё раз сам.
hint: я не говорил о том, когда нужно кешировать (по первому запросу или по модификации)
hint 2: я говорил только о способе хранения

ps: в лирушечке бб-теги?
 

Активист

Активист
Команда форума
zerkms, вообще я обращал свой пост больше к посту triumvirat, а твой появился , когда я уже написал ответ)))

> в лирушечке бб-теги
Там и BB теги, и fckEditor.
 

Splurov

Новичок
Автор оригинала: zerkms
какой смысл в создании избыточного поля, когда есть кеширование: унифицированное хранилище для всех ресурсоёмких вычислений? какой смысл уходить в частности, когда в приложении так и так почти наверняка реализовано общее решение?
Ты о кэширование на каком уровне говоришь? Есть у нас пост в блоге с 50 комментариями, при выводе поста нужно заменить во всех комментариях bbcode->html, urls->a hrefs, оттипографить. Что будешь кэшировать? Конечный ХТМЛ с постом и комментарием что ли?
 

zerkms

TDD infected
Команда форума
Splurov
мы говорим о кешировании отрендеренного контента статьи.
bb -> html. точка.

без комментариев.

я вообще не предлагал "какие данные кешировать", я просто предложил "где кешировать".
 

Xeon303

Новичок
Не думаю что у автора проект сравнимый с ли.ру.

Вот когда автор создаст что-то близкое по полярности, то тогда и стоит задумываться об этом. Только за него это делать будет команда программистов, более чем уверен.
 

C_TIGER

Новичок
ну надо же, какое совподение
http://phpclub.ru/talk/showthread.php?s=&postid=884807#post884807
 
Сверху