X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Простенький обработчик BB-кодов
InviS
InviS
Topic Starter сообщение 6.9.2010, 14:32; Ответить: InviS
Сообщение #1


Для одного клиента надо было написать подобие редактора новостей. Для этого решил использовать редактор BB-кодов. Ему нужно было добавлять ссылки, картинки и выделять нужную информацию жирным. Поэтому использовать готовые решения не захотел. Написал свой редактор. С JS-частью справился замечательно, а вот с php проблема:
В БД я заношу информацию с BB-кодами ([B], [IMG], [URL]), а вот преобразовать ее к HTML виду без базы не получается. Написал вот такой вот обработчик:
[PHP]function replaceBBCodes($text){
// заменяем выделения [B]
$result=preg_replace("/\[B\](.*)\[\/B\]/","<b>$1</b>",$text);
// заменяем картинки [IMG]
$result=preg_replace("/\[IMG\](.*)\[\/IMG\]/","<img src='$1' alt='' />",$result);
// заменяем Ссылки [URL]
$result=preg_replace("/\[URL=(.*)\](.*)\[\/URL\]/","<a href='$1' target='_blank'>$2</a>",$result);
return $result;
}[/PHP]

Но он работает неверно... Когда всего один код на странице, то все четко. Пример:
[В]Привет![/В] Медвед

Так он выдаст слово привет жирным, а медвед не жирным. И все будет верно
Если же написать чет типа:
[В]Привет![/В] Медвед, не виделись [В]сто лет[/В]

То жирным будет выделен весь текст, а внутри Будет:
Привет! [/В]Медвед, не виделись [В]сто лет


Как мне исправить мой обработчик? и нет ли у кого готового обработчика BB-кодов?
P.S.Выше во всех обработчиках я использовал русскую букву B, чтоб можно было вставить код в форум.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
r3ntg3n
r3ntg3n
сообщение 6.9.2010, 15:36; Ответить: r3ntg3n
Сообщение #2


вижу следующий вариант, использовал его при приеме SMS, где кириллицу надо было заменять на аналоги из латинницы.

собвственно сам код:
$content = $row['content']; /* переменная с содержанием страницы */

[php]$tags_arr = array ( /* массив с кодами, которые надо заменять */
'/\[B\]/', /* с экранированием могу ошибаться, проверьте*/
'/\[//B\]/',
'/\[IMG\]/',
'/\[//IMG\]/',
);

$replace_arr = array ( /* массив с тегами, которые надо вставить вместо bb-кодов */
'//<b/>/',
'//<//b/>/',
'//<img/>/',
'//<//img/>/',
);

$content = preg_replace($tagr_arr, $replace_arr, $content); /* замена bb-кодов тегами в переменной $content */[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 6.9.2010, 16:22; Ответить: Mulder_hb
Сообщение #3


(InviS @ 6.9.2010, 17:32) *
То жирным будет выделен весь текст, а внутри Будет:
Код:
Привет! [/В]Медвед, не виделись [В]сто лет


Про жадность квантификаторов что-нибудь слышали? Ваш шаблон (.*) поглощает максимальную строку. Нужно ограничить его (.*?) . Может еще какую оптимизацию надо провести. Сейчас не вспомню...

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как перенести правила переадресации из .htaccess в php обработчик nginx?
0 KrisGuseva 2097 28.12.2019, 7:33
автор: KrisGuseva
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыРазрабатываю с нуля уникальные дизайны сайтов, банеров, логотипов, QR кодов, 3D визуализации проектов AutoCAD, разработка видео инфографики
Хороший дизайн - продуманный и уникальный дизайн!
35 Art_3_Style 26135 19.1.2019, 13:03
автор: rokot
Открытая тема (нет новых ответов) Выгодный обмен Bitcoin - BTC-E кодов на QIWI/Банки и обратно
Выгодно купить Bitcoin и продать его на QIWI
1 DmitriyObmen 3188 27.7.2017, 15:15
автор: DmitriyObmen
Открытая тема (нет новых ответов) Простенький киносайт (com.ua), давно заброшен, легко собирает трафик
ТИЦ 30, PR 1, в Яндексе: 35000 страниц, трафик 2000 хостов
7 AddMaker 4227 9.4.2016, 20:11
автор: AddMaker
Открытая тема (нет новых ответов) Разрабатываю с 0 уникальные дизайны сайтов, банеров, логотипов, QR кодов, 3D, видео
0 Лоци Бачи 2537 25.2.2015, 18:14
автор: -Лоци Бачи-


 



RSS Текстовая версия Сейчас: 18.4.2024, 23:12
Дизайн