- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
function replaceBBCodes($text){
$text=str_replace("/\n/m", "$0<br/>", $text);
$text = htmlspecialchars($text);
$text=nl2br($text);
$text=stripslashes($text);
$text=str_replace("!#3040#!", "&", $text);
$text=str_replace('[b]', '<strong>', $text);
$text=str_replace('[/b]', '</strong>', $text);
$text=str_replace('[i]', '<em>', $text);
$text=str_replace('[/i]', '</em>', $text);
$text=str_replace('[u]', '<u>', $text);
$text=str_replace('[/u]', '</u>', $text);
$text=str_replace('[s]', '<s>', $text);
$text=str_replace('[/s]', '</s>', $text);
$text=str_replace('[left]', '<span class="bb_left">', $text);
$text=str_replace('[/left]', '</span>', $text);
$text=str_replace('[right]', '<span class="bb_right">', $text);
$text=str_replace('[/right]', '</span>', $text);
$text=str_replace('[center]', '<span class="bb_center">', $text);
$text=str_replace('[/center]', '</span>', $text);
$text=str_replace('[justify]', '<span class="bb_justify">', $text);
$text=str_replace('[/justify]', '</span>', $text);
$text=preg_replace("#\[color=(.*?)](.*?)\[/color\]#si", '<span style="color:$1">$2</span>',$text);
$text=preg_replace("#\[size=(.*?)](.*?)\[/size\]#si", '<span style="font-size:$1px">$2</span>',$text);
$text=preg_replace("#\[a=(.*?)](.*?)\[/a\]#si", '<a href="$1">$2</a>',$text);
$text=preg_replace("#\[img=(.*?)](.*?)\[/img\]#si", '<img src="$2" alt="images" style="float:$1;margin:5px;" />',$text);
$text=preg_replace("#\[youtube](.*?)\[/youtube\]#si",'<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/$1"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350"></embed></object>',$text);
$text=preg_replace("#\[youtube](.*?)\[/youtube\]#si",'<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/$1"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="425" height="350"></embed></object>',$text);
$text=preg_replace("#\[spoiler=(.*?)](.*?)\[/spoiler\]#si", '<div id=\'video\'><h1 class="headtt2" onclick="expandit(this)">$1</h1>
<div style="display:none;" class="sdsp"> $2</div> </div>', $text);
$text=preg_replace("#\[podspoiler=(.*?)](.*?)\[/podspoiler\]#si", '<h1 class="headtt" onclick="expandit(this)">$1</h1>
<div style="display:none;text-align:center">$2</div>', $text);
return $text;
}
Lure Of Chaos 10.12.2010 16:37 # 0
тогда в чем смысл вообще BB-кодов?
[b] точь-в-точь соответствует <strong> и т.д.
xXx_totalwar 10.12.2010 16:41 # 0
xXx_totalwar 10.12.2010 16:43 # +1
Lure Of Chaos 10.12.2010 16:43 # 0
Анонимус 10.12.2010 16:41 # 0
это phpbb кста?)
"bb_center" это вообще фееричный долбоебизм
xXx_totalwar 10.12.2010 16:46 # +1
Анонимус 10.12.2010 16:46 # +1
Lure Of Chaos 10.12.2010 17:05 # +2
xXx_totalwar 10.12.2010 17:07 # +1
Robust Scalable PHP Solution
Oleg_quadro 10.12.2010 17:20 # 0
вряд ли. всё-таки не первый год они форум делают.
Анонимус 10.12.2010 17:23 # +1
самые старые пыхпроекты как правило самые дерьмовые
Oleg_quadro 10.12.2010 17:34 # +1
Oleg_quadro 10.12.2010 17:21 # +3
Oleg_quadro 10.12.2010 17:27 # 0
brainstorm 10.12.2010 18:01 # 0
Анонимус 10.12.2010 18:04 # +1
во-первых его надо сделать визивимным: тоесть таги должны быть семантические, а не визуальные. Никакого болда: только "важный", "цитата" итд.
во-вторых надо разбить на лексемы, построить дерево (что бы ничего ни с чем не пересекалось. А если пересекается -- вылечить путем насильственного закрывания, и удаления непарных тагов). И потом сгенерить HTML.
Тогда он всегда будет красивый, внятный, и валидный.
Но куда пхпшникам до таких матанов
brainstorm 10.12.2010 18:57 # +1
Анонимус 10.12.2010 19:00 # 0
brainstorm 10.12.2010 19:07 # 0
Aios 11.12.2010 02:49 # 0
полчаса на полу от боли в животе и красными глазами пишу коммент)
Lure Of Chaos 11.12.2010 13:27 # 0
koodeer 11.12.2010 18:07 # 0
inkanus-gray 11.12.2010 18:11 # 0
Lure Of Chaos 11.12.2010 19:27 # +1