Buenas, tengo una pregunta sobre bbcodes:
Con un amigo estoy programando un foro desde 0, ya casi esta terminado, pero hay un problema, tengo un editor bbcode hecho por mi y un poquitin de ayuda de este foro :-p que reemplaza perfectamente el bbcode a html, hasta ahi todo bien. Ahora el problema es cuando alguien quiere editar un post, como paso el html a bbcode? estuve probando mucho y si uso preg replace me tira error, este es el codigo que tengo para pasar de bbcode a html, les agradeceria mucho su ayuda
Código PHP:
function bbcode($texto)
{
$texto = htmlentities($texto);
$inicio = array(
"/\[i\](.*?)\[\/i\]/is",
"/\[b\](.*?)\[\/b\]/is",
"/\[u\](.*?)\[\/u\]/is",
"/\[img\](.*?)\[\/img\]/is",
"/\[url=(.*?)\](.*?)\[\/url\]/is",
"/\[php\](.*?)\[\/php\]/is",
"/\[js\](.*?)\[\/js\]/is",
"/\[css\](.*?)\[\/css\]/is",
"/\[html\](.*?)\[\/html\]/is",
"/\[cita\](.*?)\[\/cita\]/is",
"/\[izq\](.*?)\[\/izq\]/is",
"/\[der\](.*?)\[\/der\]/is",
"/\[cen\](.*?)\[\/cen\]/is",
"/\[justify\](.*?)\[\/justify\]/is",
"/\[Tahoma\](.*?)\[\/Tahoma\]/is",
"/\[Arial\](.*?)\[\/Arial\]/is",
"/\[Verdana\](.*?)\[\/Verdana\]/is",
"/\[Segoe UI\](.*?)\[\/Segoe UI\]/is",
"/\[Comic Sans MS\](.*?)\[\/Comic Sans MS\]/is",
"/\[Helvetica\](.*?)\[\/Helvetica\]/is",
"/\[Lucida Console\](.*?)\[\/Lucida Console\]/is",
"/\[Franklin Gothic Medium\](.*?)\[\/Franklin Gothic Medium\]/is",
"/\[9px\](.*?)\[\/9px\]/is",
"/\[10px\](.*?)\[\/10px\]/is",
"/\[12px\](.*?)\[\/12px\]/is",
"/\[14px\](.*?)\[\/14px\]/is",
"/\[16px\](.*?)\[\/16px\]/is",
"/\[18px\](.*?)\[\/18px\]/is",
"/\[24px\](.*?)\[\/24px\]/is"
);
$final = array(
"<i>$1</i>",
"<b>$1</b>",
"<u>$1</u>",
"<img src='$1' />",
"<a href='$1' target='_blank'>$2</a>",
"<fieldset class='php'><legend>Codigo PHP: </legend>$1</fieldset>",
"<fieldset class='js'><legend>Codigo JavaScript: </legend>$1</fieldset>",
"<fieldset class='css'><legend>Codigo CSS: </legend>$1</fieldset>",
"<fieldset class='html'><legend>Codigo HTML: </legend>$1</fieldset>",
"<fieldset class='cita'><legend>Cita: </legend>$1</fieldset>",
"<div align='left'>$1</div>",
"<div align='right'>$1</div>",
"<div align='center'>$1</div>",
"<div align='justify'>$1</div>",
"<font face='Tahoma'>$1</font>",
"<font face='Arial'>$1</font>",
"<font face='Verdana'>$1</font>",
"<font face='Segoe UI'>$1</font>",
"<font face='Comic Sans MS'>$1</font>",
"<font face='Helvetica'>$1</font>",
"<font face='Lucida Console'>$1</font>",
"<font face='Franklin Gothic Medium'>$1</font>",
"<span style='font-size:9px'>$1</span>",
"<span style='font-size:10px'>$1</span>",
"<span style='font-size:12px'>$1</span>",
"<span style='font-size:14px'>$1</span>",
"<span style='font-size:16px'>$1</span>",
"<span style='font-size:18px'>$1</span>",
"<span style='font-size:24px'>$1</span>"
);
$caritas = array(
" :) ",
" (H) ",
" ;) ",
" :( ",
" :@ ",
" :D ",
" :P ",
" (P) ",
" :_( ",
")",
"("
);
$caritas2 = array(
" <img src='editor/imagenes/feliz.gif'> ",
" <img src='editor/imagenes/cool.gif'> ",
" <img src='editor/imagenes/;).gif'> ",
" <img src='editor/imagenes/trizte.gif'> ",
" <img src='editor/imagenes/enojado.gif'> ",
" <img src='editor/imagenes/verde.gif'> ",
" <img src='editor/imagenes/P.gif'> ",
" <img src='editor/imagenes/mmm.gif'> ",
" <img src='editor/imagenes/lloron.gif'> ",
")",
"("
);
$texto = str_replace($caritas, $caritas2, $texto);
$texto = preg_replace($inicio, $final, $texto);
// YouTube
$texto = preg_replace("/\[YouTube\]http:\/\/www.youtube.com\/watch?v=(.*?)\[\/YouTube\]/is","<object width='400' height='300'><param name='movie' value='http://www.youtube.com/v/$1&hl=es&fs=1'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://www.youtube.com/v/$1&hl=es&fs=1' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='400' height='300'></embed></object>", $texto);
$texto = preg_replace("/\[YouTube\]http:\/\/youtube.com\/watch?v=(.*?)\[\/YouTube\]/is","<object width='400' height='300'><param name='movie' value='http://www.youtube.com/v/$1&hl=es&fs=1'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://www.youtube.com/v/$1&hl=es&fs=1' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='400' height='300'></embed></object>", $texto);
$texto = preg_replace("/\[YouTube\]www.youtube.com\/watch?v=(.*?)\[\/YouTube\]/is","<object width='400' height='300'><param name='movie' value='http://www.youtube.com/v/$1&hl=es&fs=1'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://www.youtube.com/v/$1&hl=es&fs=1' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='400' height='300'></embed></object>", $texto);
$texto = nl2br($texto);
return $texto;
}