@KarambyG

Как создать обственные BB коды на сайт или форум?

Хочу создать BB код, только один вид, а именно [CODE]текст[/CODE], который на странице через php(или js) скрипт должен превратится в текст.

Думал такое реализовать через replace, но проблема в том, что внутренний bb код НЕ должен преобразовываться в html тег, а только внешний. replace преобразует ВСЕ на сколько я знаю, в том числе и внутренние.
Думал сделать через explode, но проблема в том, что этот bb код может встречаться несколько раз в тексте. Поэтому становится сложно работать с explode.

Помимо этих проблем, бывает такое что человек может открыть BB код, но не закрыть - и вёрстка сайта может порушится. А может сначала закрыть а потом открыть, что тоже не очень круто. - Хотя возможно это не так страшно, так как браузер сам допишет нужные span теги и закроет всё что надо.

Подскажите как такое лучше сделать?
И второй вопрос: на php или js лучше всего это делать?
  • Вопрос задан
  • 458 просмотров
Решения вопроса 1
@ksnk
Простейший вариант - заменять [CODE] на < pre > и закрывающий [/CODE] на < /pre>. Это не то, что нужно в этом месте ? Чтобы не задумываться о непарных тегах - можно менять регуляркой
$text=preg_replace('~\[CODE\](.*?)\[/CODE\]~si', '<pre>$1</pre>',$text);

Если, внезапно, захочется что-то более навороченного - можно посмотреть ответ nokimaro
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Берем - используем
Можно создать свои теги
https://github.com/chriskonnertz/bbcode
https://github.com/jbowens/jBBCode

Самый простой вариант сохранять в базу текст с бб-кодами и парсить в html на PHP при рендеринге. Кеширование рендера - опционально.

На js можете сделать сам редактор с кнопочками для удобного оборачивания блоков текста в бб-коды.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы