xBB v. 0.24 - PHP-библиотека для работы с BBCode. Часть 1. Общие сведения
Общие сведения
xBB - написанная на PHP библиотека для работы с BBCode, которая является развитием библиотеки, описанной здесь.
xBB может быть использован в гостевых книгах, форумах, на досках объявлений и т.п. На этом сайте (http://www.pc.uz) поддержка BBCode в пользовательских комментариях реализована с помощью xBB. Данная документация целиком сверстана в BBCode и конвертирована в HTML с помощью xBB.
Парсер реализован несколько отлично от аналогов. Обычно такие парсеры реализуются с помощью регулярных выражений. Этот же использует метод конечных автоматов. Имеет следующий плюс: как бы ни была богата и продвинута коллекция тегов, поддерживаемая в данной реализации, скорость обработки текстов будет постоянной, так как осуществляется за фиксированное число проходов. Коллекцию тегов можно увеличивать до бесконечности, а скрипт будет выполняться одинаково быстро. Скорость его работы зависит только от величины текста и от числа тегов, используемых в конкретном тексте, но не от числа всех возможных тегов и вариантов их написания. Скрипт не парсит текст многократно для каждого тега или варианта написания тега.
В умолчальной поставке xBB поддерживает 41 тег, "автоматические ссылки", смайлы. Коллекция тегов и смайлов легко расширяема.
Теги имеют следующие особенности:
О задании наборов смайликов - смотрите главы "Быстрый старт" и "API".
Далее подробно описываются теги, поддержка которых реализована в xBB по умолчанию.
xBB может быть использован в гостевых книгах, форумах, на досках объявлений и т.п. На этом сайте (http://www.pc.uz) поддержка BBCode в пользовательских комментариях реализована с помощью xBB. Данная документация целиком сверстана в BBCode и конвертирована в HTML с помощью xBB.
Парсер реализован несколько отлично от аналогов. Обычно такие парсеры реализуются с помощью регулярных выражений. Этот же использует метод конечных автоматов. Имеет следующий плюс: как бы ни была богата и продвинута коллекция тегов, поддерживаемая в данной реализации, скорость обработки текстов будет постоянной, так как осуществляется за фиксированное число проходов. Коллекцию тегов можно увеличивать до бесконечности, а скрипт будет выполняться одинаково быстро. Скорость его работы зависит только от величины текста и от числа тегов, используемых в конкретном тексте, но не от числа всех возможных тегов и вариантов их написания. Скрипт не парсит текст многократно для каждого тега или варианта написания тега.
В умолчальной поставке xBB поддерживает 41 тег, "автоматические ссылки", смайлы. Коллекция тегов и смайлов легко расширяема.
Теги имеют следующие особенности:
- Названия тегов и атрибутов не зависят от регистра. Например,
[font=Arial size=+1], [FONT=Arial SIZE=+1] и [FoNt=Arial SiZe=+1]
- равнозначно.
- Значения атрибутов могут быть закавычены "так" и 'так', либо никак не закавычены. Следующие конструкции равнозначны:
[google="BBCode"], [google='BBCode'], [google=BBCode].
. Следующие конструкции НЕ равнозначны:[google="Поддержка BBCode"], [google=Поддержка BBCode]
. Последний вариант будет интерпретирован скриптом как[google="Поддержка" BBCode=""]
.
- Теги могут быть вложенными. Но те из них, которые создают элементы блочного типа (такие как
[h1] или [table]
), не могут быть вложены в строчные теги (такие как[i] или [color]
). Строчные элементы закрываются, если начинается блочный. Эти ограничения обусловлены требованиями W3C.
- Теги должны быть правильно вложены. Неправильный код "
[b][i]текст[/b][/i]
" будет интерпретирован скриптом как "[b][i]текст[/i][/b]
[/i]". Это ограничение также обусловлено требованием W3C.
- В данной реализации BBCode поддерживаются закрывающие теги вида
[/]
. Такой тег закрывает последний незакрытый тег. Например,[b]текст[/b]
равнозначно[b]текст[/]
. Тем не менее рекомендую пользоваться именно первой формой написания. Тогда, в случае нагромождения вложенных тегов, вам будет легче ориентроваться в коде. Кроме того, первая форма написания позволяет скрипту более корректно обрабатывать пользовательские ошибки.
- Поддерживается закрытие тега способом [тег /]. Например, конструкции
[url name=top][/url]
и[url name=top /]
равнозначны.
- В некоторых случаях можно не писать закрывающий тег. Например, тег
[tr]
(строка таблицы), будет автоматически закрыт, как только встретится очередной[tr]
или закрывающий тег[/table]
. Тег[hr]
вообще не имеет закрывающего, интерпретируется скриптом как[hr/]
. О поведении конкретных тегов смотрите их описания.
- При конвертации ББКода в HTML сохраняется форматирование пробелами. Т.е. все двойные пробелы переводятся в ' ', все переводы строк заменяются на '<br />'. Однако вокруг некоторых элементов (таких как
[h1]
) игнорируются 1-2 перевода строк, так как эти элементы сами по себе создают дополнительные отступы. Это сделано для того, чтобы по возможности приблизить визуальное представление HTML к исходному ББкоду.
@l;b@r;
. Поддерживаются мнемоники следующих спецсимволов:- Открывающая квадратная скобка '[' может быть мнемонизирована как
'@l;'
.
- Закрывающая квадратная скобка ']' может быть мнемонизирована как
'@r;'
.
- Двойная кавычка '"' может быть мнемонизирована как
'@q;'
.
- Одинарная кавычка "'" (апостроф) может быть мнемонизирована как
'@a;'
.
- Знак собачки '@' может быть мнемонизирован как
'@at;'
.
[code], [nobb]
и аналогичных. Автоматические ссылки могут быть отключены. Как это делается - смотрите главу об API.О задании наборов смайликов - смотрите главы "Быстрый старт" и "API".
Далее подробно описываются теги, поддержка которых реализована в xBB по умолчанию.
Скачать zip-архив со скриптом, тестами и набором смайликов можно здесь.
75 просмотров
Статистика просмотров страницы:
- за прошлый месяц (Март 2024) - 8;
- за последние 3 месяца (Январь 2024 - Март 2024) - 13;
- за последний год (Апрель 2023 - Март 2024) - 40;
Статьи и обзоры Все статьи
Будущее маркетинговых исследований в контексте быстро развивающихся технологий.
Как тайные покупатели помогают компаниям оценить качество обслуживания, выявить проблемные ...
GT & Industrial Systems, LP, действующая в Узбекистане через зарегистрированное ...
В начале 2000-х мир киберспорта переживал свою золотую эпоху, а ...