Лесен анализ на BBcode в php
Текстът, написан от потребителя, трябва да бъде анализиран от bbcode в html. Има готови решения за това, но бих искал да предложа моята проста php функция, която прави това. Всъщност това е набор от регулярни изрази, през които се предава текст и на изхода получаваме html.
И така, първо се нуждаем от тестов текст. Използвах Yandex.abstracts и малко си поиграх с резултата, добавяйки към него различни бибикодове за теста.
Като начало ще дам готовата функция. След това ще обясня как работи. И тогава ще ви дам скрипт за изтегляне, с който тествах и дебъгвах всичко.
И така, какво прави тази малка читава красота?
/\[(\/?)(bius)\s*\]/— анализира прости тагове [b], [i], [u], [s], отговорни съответно за получер, курсив, подчертан и зачертан текст. Редовният просто ги търси и заменя квадратните скоби с триъгълни. Тъй като html таговете изглеждат еднакви.
За опростяване са необходими няколко регулярни израза с код. Първият замества [код] с последователност
В този случай трябва да получим стойността на атрибута и да я вмъкнем в резултата. Просто пиша като първи ред в цитата "Цитат &username%:"
Следващата в списъка е вкусната храна. Разбор наbbcode на url тага. Веднъж вече анализирах url тага, но в Perl изглежда, че не всеки разбира какво да прави с тази статия. Така че адаптирах това решение към php.
Списък на поддържаните тагове и синтаксис:
Използването на bbcode ще защити вашия сайт. Освен това потребителите са свикнали с него и за много целеви аудитории използването на bbcode вместо html ще увеличи използваемостта на сайта. Между другото, ако искате, можете да поръчате оценка на използваемостта на вашия сайт и да го направите още по-добър. За някои сайтове това е много критично. Самият аз често напускам сайта, койтоизключително неудобно и просто плашещо. Харесайте фейсбук ;)