Class BBCodeParser

Класс для обработки BB-кодов

Пример
$bbcode = new BBCodeParser($config);

$bbcode->setParser('header', '/\[h1\](.*?)\[\/h1\]/s', '<h1>$1</h1>');
$bbcode->except('bold')->only('header', 'italic');

$text = $bbcode->parse($text);
$text = $bbcode->parseSmiles($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)

Добавляет новый парсер
$bbcode->addParser('header', '/\[h1\](.*?)\[\/h1\]/s', '<h1>$1</h1>');
После этого станет доступна обработка текста [h1] текст [/h1]

only(mixed $only = null)

Устанавливает список используемых парсеров, можно передать массив или список через запятую
$bbcode->only('bold', 'italic');
будут обрабатываться только [b] и [i]

except(mixed $except = null)

Исключает парсеры из набора, можно передать массив или список через запятую
$bbcode->except('bold', 'italic');
После удаления [b]текст[/b] и [i]текст[/i] не будет обрабатываться

clear(string $source)

Очищает текст от BB-кодов
$text = $bbcode->clear($text);

getParsers()

Возвращает список всех парсеров
var_dump($bbcode->getParsers());

Вернуться