пример реализации bbcode

Статус
В этой теме нельзя размещать новые ответы.

Q3000

Постоялец
Регистрация
16 Янв 2009
Сообщения
81
Реакции
9
Ищу реализацию, простой пример bbcode для вставки в сайт.

JS на стороне клиента для вставок bb кода и обработки(парсинга) на сервере c bb в html
 
  • Заблокирован
  • #2
preg_replace(); ereg_replace();
 
Ребят, а как можно обезопаситься от всяких уязвимостей при BBcode?
Вот кусок кода,который я вставляю:
PHP:
    $text = str_replace("[u]","<u>",$text);
    $text = str_replace("[U]","<u>",$text);
    $text = str_replace("[i]","<i>",$text);
    $text = str_replace("[I]","<i>",$text);
    $text = str_replace("[b]","<B>",$text);
    $text = str_replace("[B]","<B>",$text);
Но далее идёт:
PHP:
$text = htmlspecialchars($text);
И естественно вместо "жирного" текста,выводится обычный текст с тегами .Просто не хочется убирать htmlspecialchars.Нужно тогда как-то защитить форму если убрать
 
просто поменяй их местами
и защита будет и теги не пропадут
 
все гораздо проще, товарищи.
preg_replace рулит. если код не будет соответствовать алгоритму, то ббкоды не проканают.
мой пример:

PHP:
$str = preg_replace("!(\[color=)(.*?)(\])(.*?)(\[\/color])!si", '<font color="\\2">\\4</font>', $str);
 
  • Заблокирован
  • #8
Блин... Чё мучится то...
Пару примеров:

1. Простой:
PHP:
$txt = preg_replace("#\[b\](.*?)\[/b\]#is", "<b>$1</b>", $txt);

2. Посложней:
PHP:
$txt = preg_replace("#\[img=(.+?) x\:(.+?) y\:(.+?)\](.*?)\[/img\]#is", "<img src=\"$1\" width=\"$2\" height=\"$3\" alt=\"$4\" border=\"0\" />", $txt);

А ставить после такой обработки
PHP:
$text = htmlspecialchars($text);
это "необдуманно"

Ещё советую хорошенько почитать про "регулярные выражения". Много полезного найти можно.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху