BBcode декодиране

msirius

Registered
Някой може ли да ми напише кода за декодиране на този phpbb код

Код:
function bbcode($text){
$text = htmlspecialchars($text); 

$text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);

$text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);

$text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);

$text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td>Quote:</td></tr><tr><td width="100%" style="border:solid 1px white">$1</td></tr></table>',$text);

$text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td>$1 каза:</td></tr><tr><td width="100%" style="border:solid 1px white">$2</td></tr></table>',$text);

$text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);

$text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);

$text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<img src="$1" alt="User submitted image" title="User submitted image"/>',$text);

$text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);

$text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);

$text=preg_replace("/\[code\](.+?)\[\/code\]/s",'<table cellspacing="1" width="100%" border="0"><tr><td>Code:</td></tr><tr><td width="100%" style="border:solid 1px white">$1</td></tr></table>',$text);



$text = nl2br($text);
return $text;
}

Благодаря предварително!
 
lam3r4370 каза:
Аз работя точно с този ббкод ,но какво означава декодиране
Ами, като искам да редактирам текста за да не ми излиза html трябва да го декодирам обратно в bbcode.
 
Мисля ,че и моя е нещо подобно.
Ето ще ти дам мойто...
Код:
<?php
function bbcode($text){
$text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);
$text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);
$text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);
$text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<img src="$1" alt="image" title="image"/>',$text);
$text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);
$text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1" target=_blank>$2</a>',$text);
$text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);
$text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td style="font-size:13px; background-image: url(images/icons/quote.gif); border: 1px solid #151515; "><b>Цитат</b>:</td></tr><tr><td width="100%" style="background: #373737; border: 1px solid black; padding: 3 3 3 3px; font-size: 12px;">$1</td></tr></table>',$text);
$text=preg_replace("/\[quote\=(.+?)\](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td style="font-size:13px; background-image: url(images/icons/quote.gif); border: 1px solid #151515; "><b>$1</b>:</td></tr><tr><td width="100%" style="background: #373737; border: 1px solid black; padding: 3 3 3 3px; font-size: 12px;">$2</td></tr></table>',$text);
$text=preg_replace("/\[center\](.+?)\[\/center\]/s", '<center>$1</center>',$text);
$text = ($text);
return $text; } ?>

и там където изкарваш го правиш така:
".bbcode($променлива)."
 
Пак не ме разбрахте, това което ми даваш си и обикновен bbcode, тоест от [b ][ /b] става <b></b>. Мен ми трябва обратното действие - от <b></b> да стане [b ][ /b] :)
 
alex95_bg_2 каза:
Записвай нормален текст, прави bbcode на изкарване ;)
Така няма ли много повече да натоварвам сървъра? Предпочитам да си го обръщам така само при редакция. Не е толкова трудно знам горе долу как ще стане кода, но все бъркам нещо синтаксиса.
 
Ето какво съм направил това е само за преобразуването на [code*][*/code]

Код:
function bbdecode($text)
{
	$text=preg_replace('/<table cellspacing="1" width="100%" border="0"><tr><td>Code:<\/td><\/tr><tr><td width="100%" style="border:solid 1px white">(.+?)<\/td></tr><\/table>/is',"[code]$1
",$text);
return $text;
}
[/code]

И дава тази грешка

preg_replace() [function.preg-replace]: Unknown modifier 't'

:roll:
 
function bbdecode($text)
{
$text=preg_replace('/<table cellspacing="1" width="100%" border="0"><tr><td>Code:<\/td><\/tr><tr><td width="100%" style="border:solid 1px white">(.+?)<\/td></tr><\/table>/is',"[codе]$1[/codе]",$text);
return $text;
}

Код:
function bbdecode($text)
{
   $text=preg_replace('/<table cellspacing="1" width="100%" border="0"><tr><td>Code:<\/td><\/tr><tr><td width="100%" style="border:solid 1px white">(.+?)<\/td><\/tr><\/table>/is',"[code]$1
",$text);
return $text;
} [/code]
 
Нищо не натоварваш ;)
Напротив, даже заемаш 10 пъти повече място в базата данни което е по-лошия вариант
 
Няма смисъл при добавяне да кодираш bbcode - кодирай го когато го изкарваш:
Код:
$text = bbcode($data[text]);

И така в файла за редактиране си изкарваш само текста, а тъй като в базата не е кодирано ще ти излиза нормално :?:
 
Да, така го направих в крайна сметка (да се кодира при изкарване). Благодаря на всички.
 

Back
Горе