PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Andruxa
Отправлено: 22 Января, 2017 - 16:21:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Нужна помощь в преобразовании 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 кодов
 
 Top
Строитель
Отправлено: 22 Января, 2017 - 16:27:53
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 789
Дата рег-ции: Февр. 2014  


Помог: 23 раз(а)




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);
 
 Top
Andruxa
Отправлено: 22 Января, 2017 - 16:50:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Вот меняю простые теги:
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>

Главный вопрос как вместо "ссылка" вставить нужный текст ?
 
 Top
Строитель
Отправлено: 22 Января, 2017 - 17:00:21
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 789
Дата рег-ции: Февр. 2014  


Помог: 23 раз(а)




Andruxa пишет:
Главный вопрос как вместо "ссылка" вставить нужный текст ?
Посмотрите на мой пример из предыдущего поста - там preg_replace() выполняет подстановку найденных совпадений по подмаскам, символы $1 и $2 - это ссылки на подмаски. Почитайте в мануале про preg_replace().
 
 Top
Andruxa
Отправлено: 22 Января, 2017 - 20:54:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Строитель , спасибо, ссылки работают, все отлично!
Дружище, помоги теперь решить вопрос с изменение цвета текста
CODE (html):
скопировать код в буфер обмена
  1. [color=FF0033]Красный цвет текства[/color]
 
 Top
Строитель
Отправлено: 22 Января, 2017 - 21:06:25
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 789
Дата рег-ции: Февр. 2014  


Помог: 23 раз(а)




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);
 
 Top
Andruxa
Отправлено: 22 Января, 2017 - 21:22:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Спасибо! Все работает!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB