Интернет, компьютеры, софт и прочий Hi-Tech

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

API

Методы класса bbcode

  • string checkUrl(string url) - преобразует строку URL с целью защиты от javascript-инъекции. Возвращает преобразованную строку.
     
    Пример
    $url = 'javascript:alert(1)';
    $url = bbcode::checkUrl($url);
    echo $url;
    // Выведет: ./javascript:alert(1)

  • string get_html([array elems]) - генерирует и возвращает HTML-код. Необязательный аргумент elems обязан иметь ту же структруру, что и свойство tree (см. главу "Свойства класса bbcode"). Если аргумент не указан, то обрабатывается $this->tree.
     
    Пример использования
    $text = 'Строка с тегами [b][i]BBCode[/i][/b].';
    $bb = new bbcode($text);
    // Выводим HTML:
    echo $bb->get_html();

  • array get_syntax([array tree]) - конвертит дерево элементов BBCode в массив со структурой свойства syntax (см. главу "Свойства класса bbcode") и возвращает результат. Необязательный аргумент tree обязан иметь ту же структруру, что и свойство tree. Если аргумент не указан, то обрабатывается $this->tree.
     
  • array get_tree() - обрабатывает массив $this->syntax, перезаписывает свойство tree и возвращает дерево элементов.
     
  • string highlight() - возвращает подсвеченный BBCode.
     
    Пример использования
    $text = 'Строка с тегами [b][i]BBCode[/i][/b].';
    $bb = new bbcode($text);
    // Выводим подсвеченный BBCode:
    echo $bb->highlight();

  • string insert_smiles(string text) - обрабатывает строку text: мнемонизирует HTML-код, заменяет разрывы строк на <br />, вставляет смайлики (перечисленные в массиве mnemonics) и "автоматические ссылки" (если опция autolinks установлена в true). Возвращает преобразованную строку.
     
  • boolean isPermissiblyChild(string parent, string child) - возвращает true, если тег с именем parent может иметь непосредственным потомком тег с именем child. В противном случае - false. Если parent - пустая строка, то проверяется, разрешено ли child входить в корень дерева BBCode.
     
  • boolean must_close_tag(string current, string next) - логическая функция. Проверяет, должен ли тег с именем current закрыться перед началом тега с именем next. Возвращает true, если должен закрыться и false в противном случае.
     
  • array normalize_bracket(array syntax) - превращает массив со структурой как у свойства syntax в правильную скобочную структуру. У возвращаемого массива отсутствует элементы 'layout', но присутствуют элементы 'level', куда пишется уровень вложенности тега.
     
  • array parse([mixed code]) - парсер BBCode. Совершает синтаксический разбор BBCode, инициализирует свойства syntax и tree. Возвращает массив syntax. Необязательный аргумент code может быть строкой с текстом BBCode или массивом типа syntax или массивом типа tree (см. главу "Свойства класса bbcode"). Если code не указан, то синтаксическому разбору подвергается $this->text.
     
    Пример использования:
    $text = 'Строка с тегами [b][i]BBCode[/i][/b].';
    $bb = new bbcode;
    // Парсим $text:
    $bb->parse($text);
    // Выводим HTML:
    echo $bb->get_html();

  • string specialchars(string string) - конвертирует специальные символы в строке string в мнемоники BBCode и возвращает результат.
     
    Таблица трансляции
    СпецсимволМнемоника
    [@l;
    ]@r;
    "@q;
    '@a;
    @@at;

  • string unspecialchars(string string) - конвертирует мнемоники BBCode в строке string в специальные символы и возвращает результат. Это - обратная функция для specialchars.
Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2007-08-23 17:32:27

Метки материала: string, xBB, API, bbcode, PHP


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

Последние десять комментариев:

05.10.2009 10:12:53 #
Mozilla Firefox dima
Проверьте, правильно ли залились на сервер скрипты обработки тегов. Они лежат в папке bbcode/Xbb/Tags.
04.10.2009 21:19:14 #
Google Chrome Гость Дима
У меня на локальной машине библиотека отработала хорошо, а на сервере хостера текст остался без преобразований. Т.е. вернулся входной текст с удаленными BB кодами, но html не вставился заместно них.
 
Например asdasd возвращает как asdasd.
 
В чем может быть проблема?
15.07.2009 13:24:44 #
Iceweasel dima
Придется удалить часть кнопок, чтобы уменьшить ширину. Пока это можно сделать только в коде xbb.php
 
Вот здесь можно посмотреть пример такой минимазации: http://front.uz/guestbook/
15.07.2009 03:44:59 #
Mozilla Firefox Гость Павел
Всё шикарно, огромное спасибо за сею фитчу для php.
Но одно всё же не нравиться. это я так понимаю жесткие минимальные размеры под окошко textarea. что очень мешает жить честно говоря. у меня свободное поле 480*unlimit то есть в ширину всего 485px... этого малоNot so
14.12.2008 03:42:49 #
Opera Гость Виталий
Добрый вечер. Сделал сайт и впервые столкнулся с bb-редактором.
Только вот к сожалению ничего не получилось.
Вставил все скрипты как говорилось в УСТАНОВКЕ. Но вот проблемма....
В обычной форме на страничке редактор работает, но к сожалению теги выводит как есть на самом деле. То есть вместе с текстом выводит и HTML теги.....
А вторая проблемма, у меня есть форма, которая встроенна в PHP код ( в ней производится вывод и редактирование текста из БД ). Так вот она визуально есть, а не работает.
Как быть....
30.10.2008 16:04:38 #
Opera Гость E
еще бы больше кодов
07.07.2008 21:38:00 #
Opera Гость jeck
спс)   :fellow:                           cпасибо!!!!!
13.09.2007 18:20:22 #
Mozilla Firefox dima
К сожалению, свойство $bb->text вам мало поможет. Оно просто содержит исходный текст BBCode, указанный напрямую, или восстановленный из $bb->syntax или из $bb->tree.
 
Метода для получения BBCode из HTML в xBB нет. В случае сложного HTML такой метод выдавал бы ужасный BBCode.
 
В случае достаточно простого HTML можно обойтись простой заменой '<', '>' на '[', ']'. В этом случае нормально конвертнутся такие простые теги, как <b>, <i>, <u>, <s>, <em>, <strong> и т.п. Нормально конвертнутся <a>, <p>, <blockquote>, <table> и еще кое что (смотрите список тегов xBB).
 
Также обратите внимание на http://www.seabreezecompute...tml2bbcode/ - Может быть поможет.
13.09.2007 13:34:46 #
Mozilla Firefox Гость Aleksendr
А нашел $bb->text
13.09.2007 13:24:42 #
Mozilla Firefox Гость Aleksendr
Скажите, а есть ли метод распарсивания html в bbcode

Оставьте, пожалуйста, свой комментарий к публикации

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

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


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