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

Тема в разделе "PHP", создана пользователем Q3000, 2 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Q3000

    Q3000 Постоялец

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

    JS на стороне клиента для вставок bb кода и обработки(парсинга) на сервере c bb в html
     
  2. 1d37r

    1d37r Читатель

    Заблокирован
    Регистр.:
    16 сен 2007
    Сообщения:
    288
    Симпатии:
    48
    preg_replace(); ereg_replace();
     
  3. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
  4. NoN

    NoN Постоялец

    Регистр.:
    25 ноя 2008
    Сообщения:
    79
    Симпатии:
    33
  5. BuzzDD

    BuzzDD Постоялец

    Регистр.:
    9 фев 2009
    Сообщения:
    76
    Симпатии:
    5
    Ребят, а как можно обезопаситься от всяких уязвимостей при 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.Нужно тогда как-то защитить форму если убрать
     
  6. Виллен

    Виллен

    Регистр.:
    12 мар 2009
    Сообщения:
    236
    Симпатии:
    60
    просто поменяй их местами
    и защита будет и теги не пропадут
     
    BuzzDD нравится это.
  7. NiceToMeatU

    NiceToMeatU Прохожие

    все гораздо проще, товарищи.
    preg_replace рулит. если код не будет соответствовать алгоритму, то ббкоды не проканают.
    мой пример:

    PHP:
    $str preg_replace("!(\[color=)(.*?)(\])(.*?)(\[\/color])!si"'<font color="\\2">\\4</font>'$str);
     
  8. sashalg

    sashalg Читатель

    Заблокирован
    Регистр.:
    21 мар 2008
    Сообщения:
    49
    Симпатии:
    7
    Блин... Чё мучится то...
    Пару примеров:

    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);
    это "необдуманно"

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