Hace un tiempo atrás comentaba por aquí que estaba realizando un Foro de Discusión, para probarme y ver si de verás aprendía PHP. Pues bien creo que la idea ya va a un 45% de ejecución. La cosa es que necesito ayuda de alguien que haya hecho algo antes con BBCode pues en realidad si entran al Foro y ven el mensaje que hay puesto en la sección "oticias Generales y Administración" se darán cuenta que hay BBCode sin formatear y que necesito dar formato, porque sino el Foro no sería atractivo. La dirección del mismo es http://reynierpm.variosweb.com. Este es el código que he realizado yo mismo (no soy experto ni mucho menos) y no se si sea el más eficiente o el correcto:
Código PHP:
function BBCodeParser($text){
$bbcode = str_replace("[b]", "<strong>",$text);
$bbcode = str_replace("[/b]", "</strong>",$bbcode);
$bbcode = str_replace("[u]", "<u>",$bbcode);
$bbcode = str_replace("[/u]", "</u>",$bbcode);
$bbcode = str_replace("[i]", "<i>",$bbcode);
$bbcode = str_replace("[/i]", "</i>",$bbcode);
$bbcode = str_replace("[align=center]", "<div align='center'>",$bbcode);
$bbcode = str_replace("[/center]", "</div>",$bbcode);
$bbcode = str_replace("[align=left]", "<div align='left'>",$bbcode);
$bbcode = str_replace("[/left]", "</div>",$bbcode);
$bbcode = str_replace("[align=right]", "<div align='right'>",$bbcode);
$bbcode = str_replace("[/right]", "</div>",$bbcode);
$bbcode = str_replace("[align=justify]", "<div align='justify'>",$bbcode);
$bbcode = str_replace("[/justify]", "</div>",$bbcode);
$bbcode = str_replace("[cita]", "\n<fieldset><legend class='citacolor'>Cita:</legend><div class='quote'>",$bbcode);
$bbcode = str_replace("[/cita]", "</div></fieldset>",$bbcode);
$bbcode = str_replace("[codigo]", "\n<fieldset><legend class='codecolor'>Código:</legend><div class='code'>",$bbcode);
$bbcode = str_replace("[/codigo]", "</div></fieldset>",$bbcode);
return $bbcode;
}
function ParserPHP($text){
preg_match_all("/(\[)(php)(])(.*)(\[\/php\])/iU", $text, $l);
for($i=0; $i< count($l[0]); $i++){
$bbcode = str_replace($l[0][$i],PHPFormat($l[4][$i]),$text);
}
return $bbcode;
}
function PHPFormat($php) {
$php = str_replace("<br>","\n",$php);
ob_start();
highlight_string($php);
$cfinal = ob_get_contents();
ob_end_clean();
$keycol = ini_get("highlight.keyword");
$manual = "http://www.php.net/manual-lookup.php?lang=es&pattern=";
$cfinal = preg_replace('{([\w_]+)(\s*</font>)'.
'(\s*<font\s+color="'.$keycol.'">\s*\()}m',
'<a href="'.$manual.'$1" title="Ayuda en [url]www.php.net[/url] sobre $1" target="_blank">$1</a>$2$3',
$cfinal);
return "\n<fieldset><legend class='phpcolor'>Código PHP:</legend><div class='php'>".$cfinal."</div></fieldset>";
}
function SmilieParser($text){
$bbcode = str_replace(":smilie01:","<img src='images/smilies/smile033.gif' alt='Smile 01' align='absmiddle' border='0' class='cursor'>", $text);
$bbcode = str_replace(":smilie02:","<img src='images/smilies/smile032.gif' alt='Smile 02' align='absmiddle' border='0' class='cursor'>", $bbcode);
// asi para las demas smilies
return $bbcode;
}
Código PHP:
$unformmated = SmilieParser(BBCodeParser(($fetch['text'])));
Cita:
me lo formatea, pero si es así:<?php function PEPE($var1,$var2){ echo $var1; echo $var2; } ?>
Cita:
no hace nada incluso no me escribe entonces el mensaje. Ayuda !!! que esto me vuelve loco y no doy con lo errores.<?php
function PEPE($var1,$var2){
echo $var1;
echo $var2;
}
?>
function PEPE($var1,$var2){
echo $var1;
echo $var2;
}
?>
Salu2 y gracias ante todo
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
![triste](http://static.forosdelweb.com/fdwtheme/images/smilies/frown.png)
![lloron](http://static.forosdelweb.com/fdwtheme/images/smilies/chillando.png)