xBB – бесплатные скрипты PHP и доки для вебмастеров

Подписаться через RSS2Email.ru

Показать HTML | Показать BBCode

Быстрый старт

Вывод текста

Класс, реализующий обработку ББКода, называется bbcode. Вот пример использования этого класса в PHP-коде:
 
PHP
$text = '[b]Переменная с текстом BBCode: [i]Hello world![/i][/b]';
// Подключаем библиотеку с классом
require_once 'ваш/путь/bbcode.lib.php';
// Создаем объект и распарсиваем $text
$bb = new bbcode($text);
// Конвертируем BBCode в HTML и выводим его
echo $bb -> get_html();

Все достаточно просто. При инициализации объекта ему передается текст, содержащий BBCode. Метод get_html возвращает текст HTML, конвертированный из BBCode. Следующий пример демонстрирует, как можно обработать последовательность текстов BBCode:
 
PHP
$list = array(
    'Первый текст с [b]ББКодом[/b]',
    'Второй текст с [i]ББКодом[/i]'
);
// Подключаем библиотеку с классом
require_once 'ваш/путь/bbcode.lib.php';
// Создаем объект
$bb = new bbcode;
// В цикле парсим ББКод и выводим HTML
foreach ($list as $val) {
    $bb -> parse($val);
    echo $bb -> get_html() . '<br />';
}

В этом примере текст BBCode обрабатывается не при инициализации объекта, а путем вызова специального метода parse.
 
Для работы со смайликами в классе bbcode предусмотрено свойство mnemonics, которое является массивом и должно содержать пары
 
'мнемоника' => 'ее замена'

Например: ':)' => '<img src="ulibka.gif" alt="Улыбка" />'
 
Если вас не устраивает набор смайликов, установленный по умолчанию, вы можете задать свой. Для этого сформируйте массив замен и положите его в mnemonics. Тогда ваши смайлики будут обрабатываться. Смайлики не будут вставляться в содержимое тегов [bbcode], [code], [nobb], [php] и т.п..
 
Пример PHP-кода, устанавливающего набор смайликов
$text = 'Переменная [b]BBCode[/b] со смайликами: :) :D';
// Формируем список смайликов:
$smiles = array(
    ':)' => '<img src="images/smilies/2.gif" alt="Well" />',
    ':D' => '<img src="images/smilies/1.gif" alt="Very we!" />'
);
// Подключаем библиотеку с классом
require_once 'ваш/путь/bbcode.lib.php';
// Создаем объект и парсим $text
$bb = new bbcode($text);
// Задаем набор смайликов
$bb -> mnemonics = $smiles;
// Конвертируем BBCode в HTML и выводим его
echo $bb -> get_html();

Более подробно о работе с библиотекой смотрите в разделе "API".

Теперь самое время подумать о том, чтобы дать пользователям какой нибудь редактор для работы с BBCode


 
 

Последнее редактирование: 2008-02-01 10:32:54

Метки материала: BBCode, xBB, PHP, get_html, API, смайлики, парсер, текст, HTML, bbcode.lib.php, скрипт BBCode


85 комментариев

08.11.2007 12:25:17 #
Opera Гость Vasja Pupkin
Скачал, посмотрел, а как там формочку как эта вставить????
Любопытно!!!!
09.11.2007 13:45:17 #
Opera Гость ZigFreeD
Вот тут все написано!
07.02.2008 18:38:16 #
Opera Гость lexix
А как обойтись без средств ООП?
08.02.2008 09:17:52 #
Mozilla Firefox dima
В случае с xBB - никак. И даже не знаю, зачем обходиться без ООП.
Но, если действительно нужно, то напишите отдельные функции, которые будут вызывать соответствующие методы класса.
25.05.2008 14:30:43 #
Opera Гость lexix
dima
Понятно
09.06.2009 17:08:40 #
Internet Explorer Гость Игорь
Почему, когда я пытаюсь разделить обзацы с помощью Enter, у меня появляются "<br>" в начале строки?
10.06.2009 11:32:24 #
Iceweasel dima
В HTML переносы строк создаются с помощью тега "<br>". Однако, эти теги будут вам видны только при просмотре исходного кода страницы.
15.10.2009 19:39:40 #
Opera Гость Firefolk
ООП в веб-программировании - петля на шэе сервака. Конечно если у Вас посещаемость 2-3 чел. в сутки - роли это не сиграет но если аудитория превышает 100000 + каждый из них просмотрит не одну страницу а как минимум 30-40 ст. то выход один - покупать сервак, так как на любом виртуальном хостинге заблокируют за перенагрузку железа.
Посему было бы очень полезным создание подобной библиотеки не ипользующей ООП в принцыпе.
Кто не согласен - попробуйте потестить скорость выполнения задач парсинга в цыклах с использованием ООП и без него, разница весьма ощутима.
15.10.2009 21:03:44 #
Mozilla Firefox dima
Не думаю, что вы правы. Можете предоставить результаты тестирования?
 
если аудитория превышает 100000 + каждый из них просмотрит не одну страницу а как минимум 30-40 ст. то выход один - покупать сервак

При такой нагрузке в любом случае придется покупать сервак. Независимо от того, используете вы ООП или нет. И не один. Названный вами трафик сопоставим с трафиком Яндекса. Сколько тысяч серверов у Яндекса?
16.10.2009 15:53:49 #
Opera Гость Firefolk
100к - не так уж много и у многих сайтов такая посещаемость а яндекс ставить в пример не хорошо, он себя неоднократно дисквалифицыровал.
Кстати... ето баг или в настройках можно поправить - если парный bb код не закрыть - парсер ето пропустит, как будто ничего не произошло?

Оставьте свой комментарий:

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2010, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.