pues veran estoy programando un sistema de envio de tutoriales y tengo un par de funciones, una para el BBCode y otra para colorear el codigo PHP:
Código PHP:
<?
function bbcode ($texto) {
$texto = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]", "<a target=\"_blank\" href=\"\\1\">\\2</a>", $texto);
$texto = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$texto);
$i=0;
while($i < 3) {
$texto = eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>", $texto);
$texto = eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>", $texto);
$texto = eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>", $texto);
$texto = eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<center>\\1</center>", $texto);
$texto = eregi_replace("\\[color=((#)?[0-9a-z]+)\\]([^\\[]*)\\[/color\\]","<font color=\"\\1\">\\1</font>",$texto);
$texto = eregi_replace("\\[img\\]([^\\[]*)\\[/img\\]","<img src=\"\\1\" border=\"0\"\\1 />",$texto);
$texto = eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>", $texto);
$i++;
}
return $texto;
}
function codigo($texto){
if(strstr($texto,"[ php]")) {
$partes = explode("[ php]",$texto) ;
$total = count($partes) ;
for($a = 0 ; $a < $total ; $a++) {
$posicion = strpos($partes[$a],"[ /php]") ;
if(strstr($partes[$a],"[ /php]")) {
$codigo = substr($partes[$a],0,$posicion) ;
$codigo = html_entity_decode($codigo) ;
$coloreado = highlight_string($codigo,true) ;
$coloreado = str_replace("\r<br />","<br>",$coloreado) ;
$coloreado = "<table border=0 cellspacing=1 style=border-collapse: collapse bordercolor=#000000 width=100%><tr><td width=100% style=\"border: 1px solid #000000\" bgcolor=#ffffff><font face=courier new style='font-size:11px;'>$coloreado</td></tr></table>" ;
$normal = substr($partes[$a],$posicion+9) ;
$partes[$a] = "$coloreado$normal" ;
}
}
$texto = implode("",$partes) ;
}
return $texto;
}
?>
ahora bien cuando envio un tutorial desde el formulario para guardarlo uso la funcion nl2br() para respetar los saltos de linea, pero al mostrar el tutorial los saltos de linea del texto normal estan bien, el problema llega cuando junto con el texto simple tb se envia codigo PHP, pasa ke despues de cada salto muestra la etiketa "<br />" ke al parecer la toma de la BD pk asi lo he pillao en el PHPMyAdmin, les dejo una captura de pantalla de las pruebas ke hago para ke vean mi problema:
espero me puedan ayudar a dar solucion a esta bronca
Un saludo
PD. he dajado espacios [ php] y [ /php] para no hacer conflicto con el bbcode de este foro