Cita:
Iniciado por darkgaze
De todas formas lo que más me extraña es que ... si pongo el replace por "", (Vacio), sale bien, parrafeado y todo!... O_O... pero no puede serporuqe en la bbdd se ha guardado con <br /> !!.
Es curioso...
Si puede ser, y por eso funciona
Verás, la función nl2br()
agrega un <br /> cada vez que encuentra un caracter de salto de línea "
\n", pero, luego de ejecutarla, el caracter de salto de linea sigue ahí.
Tenemos:
Código PHP:
echo "Texto, y más texto,\notra linea de texto";
que imprime
Código:
Texto, y más texto,
otra línea de texto
Al aplicar la función nl2br() a esa cadena, obtenemos esto:
Código:
Texto, y más texto,<br />
otra línea de texto
que sería lo mismo que:
Código PHP:
echo "Texto, y más texto,<br />\notra línea de texto";
Dicho esto, no debe extrañar que al eliminar los tags <br /> sigan permaneciendo los saltos de línea originales \n.
El propio manual lo dice:
Cita:
Iniciado por php.net/nl2br nl2br — Inserta saltos de línea de HTML antes de cada salto de línea de la cadena
Y para terminar, aquí tienes una pequeña función para borrar los saltos de línea creados con nl2br():
Código PHP:
function br2nl($texto) {
return preg_replace('/<br\s*\/?>/i', '', $texto);
}
# Uso
$var = nl2br("Texto\nmás texto");
echo br2nl($var);
Saludos,