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,