Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: замена html тегов на BB код
Форумы портала PHP.SU » » Вопросы новичков » замена html тегов на BB код

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

1. kosik82 - 27 Декабря, 2012 - 17:06:07 - перейти к сообщению
народ, подскажите может есть готовая функция,
а то никак не разберусь, особенно с a и img
2. SkaN - 27 Декабря, 2012 - 18:57:32 - перейти к сообщению
На эту тему есть много манов и готовых решений в сети, ищи в сторону регулярок
3. sKaa - 27 Декабря, 2012 - 19:04:52 - перейти к сообщению
Хм... Готовая функция???
Пожалуй да, есть парочка.
preg_math_all, preg_replace_callback
4. kosik82 - 27 Декабря, 2012 - 19:21:56 - перейти к сообщению
сложно это как то.

мне бы простую замену.
я пробую
CODE (htmlphp):
скопировать код в буфер обмена
  1. $newtext = str_replace($html, $bb, $text);


только вот теги a и img никак не хотят. очень мешает target и border
5. mikpankov - 27 Декабря, 2012 - 22:39:23 - перейти к сообщению
мне бы простую замену.
я пробую
CODE (htmlphp):
скопировать код в буфер обмена
  1. $newtext = str_replace($html, $bb, $text);


только вот теги a и img никак не хотят. очень мешает target и border[/quote]

PHP:
скопировать код в буфер обмена
  1. function bbcode($text) {
  2.   $str_search = array(
  3.   "#\[br\]#is",
  4.   "#\[p\](.+?)\[\/p\]#is",
  5.   "#\[b\](.+?)\[\/b\]#is",
  6.   "#\[i\](.+?)\[\/i\]#is",
  7.   "#\[s\](.+?)\[\/s\]#is",
  8.   "#\[u\](.+?)\[\/u\]#is",
  9.   "#\[url=(.+?)\](.+?)\[\/url\]#is",
  10.   "#\[url\](.+?)\[\/url\]#is",
  11.   "#\[img\](.+?)\[\/img\]#is",
  12.   "#\[size=(.+?)\](.+?)\[\/size\]#is",
  13.   "#\[color=(.+?)\](.+?)\[\/color\]#is",
  14.   "#\[list\](.+?)\[\/list\]#is",
  15.   "#\[list=(1|a|I)\](.+?)\[\/list\]#is",
  16.   "#\[\*\](.*)#",
  17.   "#\[h(1|2|3|4|5|6)\](.+?)\[\/h(1|2|3|4|5|6)\]#is");
  18.   $str_replace = array(
  19.   '<br>',
  20.   '<p>\\1</p>',
  21.   '<strong>\\1</strong>',
  22.   '<span style="font-style:italic">\\1</span>',
  23.   '<span style="text-decoration:line-through">\\1</span>',
  24.   '<span style="text-decoration:underline">\\1</span>',
  25.   '<a href="\\1">\\2</a>',
  26.   '<a href="\\1">\\1</a>',
  27.   '<img src="\\1">',
  28.   '<span style="font-size:\\1pt">\\2</span>',
  29.   '<span style="color:\\1">\\2</span>',
  30.   '<ul>\\1</ul>',
  31.   '<ol type="\\1">\\2</ol>',
  32.   '<li>\\1</li>',
  33.   '<h\\1>\\2</h\\3>');
  34.  
  35.   return preg_replace($str_search, $str_replace, $text);
  36. }
  37.  
6. kosik82 - 27 Декабря, 2012 - 22:54:01 - перейти к сообщению
а у тебя нормально работает?

у меня из всего текста выводит только ссылку и не в ВВ
7. mikpankov - 27 Декабря, 2012 - 23:01:08 - перейти к сообщению
kosik82 пишет:
а у тебя нормально работает?

у меня из всего текста выводит только ссылку и не в ВВ


Чтобы работало надо после всего этого написать:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $text='[p]абзац[/p][p]ещё абзац[/p]';
  2. echo bbcode($text);


Кстати, чтобы меняло с html на BB надо строку

PHP:
скопировать код в буфер обмена
  1. preg_replace($str_search, $str_replace, $text);


Поменять на:

PHP:
скопировать код в буфер обмена
  1. preg_replace($str_replace, $str_search, $text);
8. kosik82 - 05 Января, 2013 - 14:51:04 - перейти к сообщению
Это не работает
9. LShark - 05 Января, 2013 - 21:02:30 - перейти к сообщению
Разберись сначала с работой функции, почитай про функцию preg_replace
Потом почитай, как вызывать эту функцию.

Ощущение, что ты вообще не в курсе, что это и с чем его едят.

Начнем с простого:

http://www.php.su/functions/?preg-replace
и ОСОБЕННО:
http://www.php.su/lessons/?lesson_17

Что то ссылки криво работают, лучше их скопируй и вставь, иначе не туда уйдешь.
10. kosik82 - 05 Января, 2013 - 21:16:13 - перейти к сообщению
kosik82 пишет:
Кстати, чтобы меняло с html на BB надо строку

PHP:
скопировать код в буфер обмена

preg_replace($str_search, $str_replace, $text);



Поменять на:

PHP:
скопировать код в буфер обмена

preg_replace($str_replace, $str_search, $text);

(Отредактировано автором: 27 Декабря, 2012 - 23:07:11)



чего за глупость?
(Добавление)
LShark пишет:
Разберись сначала с работой функции, почитай про функцию preg_replace
Потом почитай, как вызывать эту функцию.

Ощущение, что ты вообще не в курсе, что это и с чем его едят.

Начнем с простого:

http://www.php.su/functions/?preg-replace
и ОСОБЕННО:
http://www.php.su/lessons/?lesson_17

Что то ссылки криво работают, лучше их скопируй и вставь, иначе не туда уйдешь.


попробуй запусти предложенный mikpankov код,
а потом уже хвастайся
11. ams - 05 Января, 2013 - 21:25:41 - перейти к сообщению
Ни разу не пользовался... но чем это не подходит ? http://php.net/manual/ru/book.bbcode.php
12. kosik82 - 05 Января, 2013 - 21:28:29 - перейти к сообщению
ams пишет:
Ни разу не пользовался... но чем это не подходит ? http://php.net/manual/ru/book.bbcode.php


тем что мне html на BB код надо. это в заглавии написано.

 

Powered by ExBB FM 1.0 RC1