Class BBCode
Каждый парсер может состоять из нескольких параметров
- $bbcode = new BBCode();
- $bbcode->setParser('header', '/\[h1\](.*?)\[\/h1\]/s', '<h1>$1</h1>');
- $bbcode->except('bold')->only('header', 'italic');
- $text = $bbcode->parse($text);
- $text = $bbcode->parseStickers($text);
pattern - шаблон регулярного выражения
Пример: /\[b\](.*?)\[\/b\]/s
replace - шаблон замены
Пример: <strong>$1</strong>
callback - поиск по регулярному выражению и замену с использованием callback-функции
Необходимо указать имя функции для обработки, в этом случае параметр replace не учтется
iterate - количество итераций обработки
Обрабатывает вложенности к примеру [b][b][b][b][b]Текст[/b][/b][/b][/b][/b], по умолчанию выполняется 1 прогон
Список доступных парсеров
- code - исходный код
- bold - жирный текст
- italic - наклонный текст
- underLine- подчеркивание текста
- lineThrough - зачеркивание текста
- fontSize - размер текста
- fontColor - цвет текста
- center - центрирование текста
- quote - цитирование
- namedQuote - цитирование с параметром
- http - обычная ссылка
- link - ссылка
- namedLink - именованная ссылка
- image - картинка
- orderedList - сортированный список
- unorderedList - именованный список
- spoiler - спойлер
- shortSpoiler - именованный спойлер
- hide - скрытие текста
- youtube - видео
parse(string $source)
Обрабатывает текст с BB-кодами
- $text = $bbcode->parse($text);
setParser(string $name, string $pattern, string $replace)
Добавляет новый парсерПосле этого станет доступна обработка текста [h1] текст [/h1]
- $bbcode->addParser('header', '/\[h1\](.*?)\[\/h1\]/s', '<h1>$1</h1>');
only(mixed $only = null)
Устанавливает список используемых парсеров, можно передать массив или список через запятуюбудут обрабатываться только [b] и [i]
- $bbcode->only('bold', 'italic');
except(mixed $except = null)
Исключает парсеры из набора, можно передать массив или список через запятуюПосле удаления [b]текст[/b] и [i]текст[/i] не будет обрабатываться
- $bbcode->except('bold', 'italic');
clear(string $source)
Очищает текст от BB-кодов
- $text = $bbcode->clear($text);
getParsers()
Возвращает список всех парсеров
- var_dump($bbcode->getParsers());