Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: bb теги
 
 автор: gecccter   (26.06.2008 в 11:47)   письмо автору
 
 

Здравствуйте! У меня есть тескст с бб тегами, он хранится в переменной $topiktext, скажите, как текст с бб тегами хранящийся в этой переменной переделать на текст с html тегами соответствующим бб.
Используются:
[b][/b]
[i][/i]
[u][/u]
[big][/big]
[small][/small]
[br]
[img][/img]
[font][/font]

   
 
 автор: mihdan   (26.06.2008 в 11:58)   письмо автору
 
   для: gecccter   (26.06.2008 в 11:47)
 

http://pear.php.net/package/HTML_BBCodeParser - от разработчиков
http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=11806&page=0 - на этом форуме

   
 
 автор: AcidTrash   (26.06.2008 в 12:05)   письмо автору
 
   для: gecccter   (26.06.2008 в 11:47)
 

preg_replace("#\[small\](.+)\[\/small\]#isU",'<small>\\1</small>',$text);
preg_replace("#\[big\](.+)\[\/big\]#isU",'<big>\\1</big>',$text);
preg_replace("#\[b\](.+)\[\/b\]#isU",'<b>\\1</b>',$text);
preg_replace("#\[i\](.+)\[\/i\]#isU",'<i>\\1</i>',$text);
preg_replace("#\[url\][\s]*([\S]*)[\s]*\[\/url\]#si",'<a href="\\1" target=_blank>\\1</a>',$text);
preg_replace("#\[url[\s]*=[\s]*([\S]+)[\s]*\][\s]*([^\[]*)\[/url\]#isU",
                             '<a href="\\1" target=_blank>\\2</a>',$text);


и тд.

   
 
 автор: gecccter   (26.06.2008 в 12:59)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 12:05)
 

спасибо, помогите пожалуйста еще с тегами [br] [img][/img] [color][/color] и еще:
если писать например так [big][big]тест[/big][/big] то увидит только первый открывающий и последний заккрывающий, т.е. так [big]тест[/big] где тест выводится большими буквами, это можно опправить? я просто не особо силен в программировании и в частности пхп, поэтому врядли сумею сделать сам что-то из этого, даже по анологии с уже написанными

   
 
 автор: AcidTrash   (26.06.2008 в 13:56)   письмо автору
 
   для: gecccter   (26.06.2008 в 12:59)
 

>спасибо, помогите пожалуйста еще с тегами [br] [img][/img]
$text=preg_replace("#\[img\](.+)\[/img\]#isU",'<img src="\\1" border=0>',$text);
$text=str_replace("[br]",'<br>',$text);


Насчет [color][/color] поподробнее



>big][big]тест[/big][/big] то увидит только первый открывающий и последний заккрывающий,
Если правильно понял
$text=preg_replace("#(\[big\]){1,}(.+?)(\[/big\]){1,}#is",'<big>\\2</big>',$text);

   
 
 автор: gecccter   (26.06.2008 в 14:06)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 13:56)
 

Спасибо, [img] работает [color] скачал откудато в инете, тоже работает, [br] работает, а вот на счет [big][big] тест [/big][/big], лишних бб тегов не выводит как в прошлый раз, НО увеличивает только один раз, т.е. если поставить [big][big][big][big] тест [/big][/big][/big][/big] то размер надписи будет такойже как [big] тест [/big]

   
 
 автор: AcidTrash   (26.06.2008 в 14:10)   письмо автору
 
   для: gecccter   (26.06.2008 в 14:06)
 

>если поставить [big][big][big][big] тест [/big][/big][/big][/big] то размер надписи будет такойже >как [big] тест [/big]
Я думал вы имеете ввиду, что сколько бы не было [big] и [/big], считался только один, а другие даже и не показывались.

   
 
 автор: gecccter   (26.06.2008 в 14:24)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 14:10)
 

до этого тоже считался только один как и сейчас, только еще те, что не считались выводились незамененными! Просто как [big] а сейчас те что не считаются хотябы не выводятся.
Вопрос все равно остается((

   
 
 автор: AcidTrash   (26.06.2008 в 15:24)   письмо автору
 
   для: gecccter   (26.06.2008 в 14:24)
 

Что-то типа такого
<?php
$text
="[big][big]text[/big][/big]";
function 
big($out)
  {
    return 
"<".preg_replace("![\[\]]!""",$out[0]).">";
  }
$text=preg_replace_callback("#\[/?big\]{1,}#is","big"$text);
print 
$text;
?>

   
 
 автор: Stanisov   (27.06.2008 в 12:41)   письмо автору
 
   для: AcidTrash   (26.06.2008 в 15:24)
 

А напишите пожалуйста ББ код тега фонт [font][/font]
и обратній вариант из Тега в ББ код

   
 
 автор: AcidTrash   (27.06.2008 в 13:03)   письмо автору
 
   для: Stanisov   (27.06.2008 в 12:41)
 

Атрибуты какие нибудь есть?
Если нет, то аналогично
preg_replace("#\[font\](.+)\[/font\]#isU",'<font>\\1</font>',$text);    

   
 
 автор: Stanisov   (27.06.2008 в 13:13)   письмо автору
 
   для: AcidTrash   (27.06.2008 в 13:03)
 

Не совсем так...... вот такой тег [#00000] ТЕКСТ_ЛЮБОЙ [/#00000] - преобразуеца на <font color="#000000">ТЕКСТ_ЛЮБОЙ</font> и такой же тег обратно, как сделать?

   
 
 автор: AcidTrash   (27.06.2008 в 13:25)   письмо автору
 
   для: Stanisov   (27.06.2008 в 13:13)
 

<?php

// Замена на font
$text "[#000000] ТЕКСТ_ЛЮБОЙ [/#000000]";
$text preg_replace("#\[(.+)\](.+)\[/.+\]#isU",'<font color=\"$1\">$2</font>',$text);
print 
$text;

//Обратная замена на BB-коды
$text1 "<font color=\"#000000\">ТЕКСТ_ЛЮБОЙ</font>";
$text1 preg_replace("#<font color=\"(.+)\">(.+)</font>#isU",'[$1]$2[/$1]',$text1);
print 
$text1;
?>

   
 
 автор: Stanisov   (27.06.2008 в 13:31)   письмо автору
 
   для: AcidTrash   (27.06.2008 в 13:25)
 

Работает! спасибо, AcidTrash!
//Обратная замена на BB-коды 
$text1 = "<font color=\"#000000\">ТЕКСТ_ЛЮБОЙ</font>"; 
$text1 = preg_replace("#<font color=\"(.+)\">(.+?)</font>#isU",'[$1]$2[/$1]',$text1); 
print $text1; 


а если самому делать фонты [aqua] ТЕКСТ_ЛЮБОЙ [/aqua], [rer] ТЕКСТ_ЛЮБОЙ [/red], [#ff0909] ТЕКСТ_ЛЮБОЙ [/ff0909], ну вобщем чтоб юзер сам мог ставить себе фонт, как тогда заменять?

   
 
 автор: AcidTrash   (27.06.2008 в 13:40)   письмо автору
 
   для: Stanisov   (27.06.2008 в 13:31)
 

Ну, это уже JavaScript.
Форум правее "HTML-CSS-JavaScript".
Думаю Вам там быстрее подскажут, чем я.

   
 
 автор: Stanisov   (27.06.2008 в 13:57)   письмо автору
 
   для: AcidTrash   (27.06.2008 в 13:40)
 

Хорошо! Все равно спасибо огромное!

   
 
 автор: AcidTrash   (27.06.2008 в 14:14)   письмо автору
 
   для: Stanisov   (27.06.2008 в 13:57)
 

Хорошо! Все равно спасибо огромное!
Полагаю это написана фраза
"Хорошо! Все равно спасибо огромное!" :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования