Форумы портала PHP.SU » PHP » Регулярные выражения » bb редактор. Нужна помощь!

Страниц (1): [1]
 

1. Andruxa - 22 Января, 2017 - 16:21:35 - перейти к сообщению
Нужна помощь в преобразовании bb кодов в нормально читабильный вид.
Нашел простой bb редактор, он записывает все в следующим виде:
CODE (html):
скопировать код в буфер обмена
  1. [b]Жирный текст [/b][i]Наклонный текст[/i][b] [/b][u]Подчеркнутый текст[/u][b] [/b][url=http://www.mail.ru]ССылка[/url][b] [/b][ul][li]Список 1[/li][li]Спислк2 [/li][li]Список 3 [/li][/ul][b][img]http://img.gif[/img] [/b][color=FF0033]Красный цвет текства[/color][b] [/b] [quote=]Цитата[/quote][b] [/b]


с переводом простых тегов это понятно, меня интересует перевод ссылок, цвет текста и цитата.
Помогите с регуляркой по замене bb кодов
2. Строитель - 22 Января, 2017 - 16:27:53 - перейти к сообщению
Andruxa пишет:
с переводом простых тегов это понятно, меня интересует перевод ссылок, цвет текста и цитата.
Точно так же, как и простые теги. Если нужен конкретный пример, напишите что конкретно на что у вас не получается заменить.
(Добавление)
Andruxa, ссылки например
PHP:
скопировать код в буфер обмена
  1. $str = '[url=http://www.mail.ru]ССылка[/url]';
  2. $patt = '~\[url=(https?://.+?)](.+?)\[/url]~iu';
  3. echo preg_replace($patt, '<a href="$1">$2</a>', $str);
3. Andruxa - 22 Января, 2017 - 16:50:43 - перейти к сообщению
Вот меняю простые теги:
PHP:
скопировать код в буфер обмена
  1.  $text=str_replace("[b]", "<b>", $text);
  2.     $text=str_replace("[/b]", "</b>", $text);
  3.     $text=str_replace("[i]", "<i>", $text);
  4.     $text=str_replace("[/i]", "</i>", $text);
  5.     $text=str_replace("[u]", "<u>", $text);
  6.     $text=str_replace("[/u]", "</u>", $text);
  7.     $text=str_replace("[img]", "<img src='", $text);
  8.     $text=str_replace("[/img]", "'/>", $text);
  9.     $text=str_replace("[ul]", "<ul>", $text);
  10.     $text=str_replace("[/ul]", "</ul>", $text);
  11.     $text=str_replace("[li]", "<li>", $text);
  12.     $text=str_replace("[/li]", "</li>", $text);


Вопрос с url
CODE (html):
скопировать код в буфер обмена
  1. [url=http://www.mail.ru]ССылка[/url]
  2. я понимаю, что мне нужно заменить [url= на <a href='ссылка' /> а [/url] на </a>

Главный вопрос как вместо "ссылка" вставить нужный текст ?
4. Строитель - 22 Января, 2017 - 17:00:21 - перейти к сообщению
Andruxa пишет:
Главный вопрос как вместо "ссылка" вставить нужный текст ?
Посмотрите на мой пример из предыдущего поста - там preg_replace() выполняет подстановку найденных совпадений по подмаскам, символы $1 и $2 - это ссылки на подмаски. Почитайте в мануале про preg_replace().
5. Andruxa - 22 Января, 2017 - 20:54:42 - перейти к сообщению
Строитель , спасибо, ссылки работают, все отлично!
Дружище, помоги теперь решить вопрос с изменение цвета текста
CODE (html):
скопировать код в буфер обмена
  1. [color=FF0033]Красный цвет текства[/color]
6. Строитель - 22 Января, 2017 - 21:06:25 - перейти к сообщению
Andruxa пишет:
Строитель , спасибо, ссылки работают, все отлично!
Дружище, помоги теперь решить вопрос с изменение цвета текста
CODE (html):
скопировать код в буфер обмена
  1. [color=FF0033]Красный цвет текства[/color]
PHP:
скопировать код в буфер обмена
  1. $str = '[color=FF0033]Красный цвет текста[/color]';
  2. $patt = '~\[color=([a-z\d]{6})](.+?)\[/color]~iu';
  3.  
  4. echo preg_replace($patt, '<span style="color:#$1">$2</span>', $str);
7. Andruxa - 22 Января, 2017 - 21:22:51 - перейти к сообщению
Спасибо! Все работает!

 

Powered by ExBB FM 1.0 RC1