Парсинг bb-кодів

Парсинг BB-кодів

Якщо Ви створювали форум або створювали можливість коментування на сайті, то, цілком ймовірно, що ви стикалися з BB-кодами. На всякий випадок, BB-коди - це набір тегів, схожих на HTML-теги, які створені для редагування зовнішнього вигляду повідомлення. наприклад, [B] [/ b], [Url = http: //google.ru] Google [/ url], [Img] https://myrusakov.ru/img.jpg [/ img] - це все різні BB-коди. І ось завдання програміста полягає в тому, щоб перетворити BB-коди в HTML-код. ось парсинга BB-коду і перетворенням його в HTML-код, ми і займемося в цій статті.




Відразу наводжу код цього скрипта, а точніше функції, яка приймає текст з BB-кодами, а повертає вже HTML-код:

lt ;?php
protectedfunction replaceBBCode($ text_post){
$ str_search
= array(
"# n # is",
"# [B ] (. +?) [ / B ] # is",
"# [I ] (. +?) [ / I ] # is",
"# [U ] (. +?) [ / U ] # is",
"# [Code ] (. +?) [ / Code ] # is",
"# [Quote ] (. +?) [ / Quote ] # is",
"# [Url = (. +?) ] (. +?) [ / Url ] # is",
"# [Url ] (. +?) [ / Url ] # is",
"# [Img ] (. +?) [ / Img ] # is",
"# [Size = (. +?) ] (. +?) [ / Size ] # is",
"# [Color = (. +?) ] (. +?) [ / Color ] # is",
"# [List ] (. +?) [ / List ] # is",
"# [Listn] (. +?) [ / Listn ] # is",
"# [ * ] (. +?) [ / * ] #"
) -
$ str_replace
= array(
"
"
,
" 1",
" 1",
" 1",
"
1",
"
Цитата
1
"
,
" 2",
" 1",
"",
" 2",
" 2",
"
    1

Відео: королі стихій bb коди

"
,
"
    1
"
,
"
  • 1
  • "

    ) -
    return preg_replace($ str_search, $ str_replace, $ text_post) -
    }
    ?gt;


    Як бачите, здавалося б складне завдання елементарно вирішується фактично однією функцією - preg_replace (). Тому, коли мене запитують, а чи потрібні ці регулярні вирази, я завжди відповідаю: "Так!". Якби Ви вирішували це завдання звичайними строковими функціями, то коду було б набагато більше, а результат був би, швидше за все, гірше. Єдине, що в даній функції не робиться - це перевірка на коректність вхідних даних. Адже користувач може не закрити тег (випадково видалив його, наприклад) або, наприклад, не дотримуватися вкладеність тегів, так багато чого ще. На практиці, такими перевірками ніхто не займається, а в разі "кривого"Повідомлення, його правлять вручну (зазвичай дефектність відразу видно).

    Відео: [PHP] Пишемо свій движок 2.0. Проста валідація BB кодів. Частина 3 # 25

    Сподіваюся, дана функція допоможе Вам у парсінгу BB-кодів. За аналогією, Ви можете додати ще різних BB-кодів, наприклад, BB-код вставки відео з YouTube.

    Поділися в соціальних мережах:

    Схожі
    Зміна зовнішнього вигляду першої літериЗміна зовнішнього вигляду першої літери
    Реалізація редиректу на phpРеалізація редиректу на php
    Створення динамічної функції на phpСтворення динамічної функції на php
    Мета-теги для браузера в htmlМета-теги для браузера в html
    Як зробити коментування на сайтіЯк зробити коментування на сайті
    Різниця між html і xhtmlРізниця між html і xhtml
    Парсинг xml-документа на phpПарсинг xml-документа на php
    Як зробити смайли в коментаряхЯк зробити смайли в коментарях
    Прогалини в htmlПрогалини в html
    Як відправити referer через curlЯк відправити referer через curl
    » » Парсинг bb-кодів