Как в php конвертировать BB коды в HTML
Anton
13.04.2024 23:03
38
Класс с говорящим названием BBCode. Скачать его можно с моего сайта. Если вы используете автозагрузку классов, то класс уже будет доступен для работы и ничего делать больше не надо. В противном случае файл нужно подключить include "class.bbcode.php"; BBcode::parse() echo BBcode::parse('[b]Привет мир!!![/b]'); // Привет мир!!! Такие коды, класс априори не поддерживает. Но мы программисты, и руки растут откуда надо. Поэтому добавим их поддержку сами. Класс работает (неожиданно) на регулярных выражениях. Есть массив $simple_search, который содержит регулярные выражения, описывающие простые bb коды(b, i,u...) . Никаких ухищренных защит в коде кстати нет. Простор для хакеров. Вам поможет узнать ip адрес сайта этот ресурс. И запустить для него парсер. Здесь же находим строку '/\[code\](.*?)\[\/code\]/is', в соседнем массиве $simple_replace этот код имеет соответствие для замены '$1', Этого достаточно, чтобы включить поддержку своих кодов. Добавляем в конец $simple_search
Готово. Подсветку кода на блоге делает Syntax Highlighter, соответственно в вашем случае замена может быть слегка иной, но принцип будет тем же. Замечу, что скрипт никак не защищает содержимое ваши bb тегов от html. Это нужно сделать самому. Чтобы никто не смог ввести в комментарий html я сделал так $content = bbcode::parse(htmlspecialchars($content)); // Parse bbcode $s = preg_replace(self::$simple_search, self::$simple_replace, $s); ]*>[^<]*) |
Комментарии:проблема тут в том, что ни вы ни ученики не понимаю%u04
|