PHP - Mostrar textos con el formato que traen desd mysql

 
Vista:

Mostrar textos con el formato que traen desd mysql

Publicado por Daniel (7 intervenciones) el 18/03/2010 16:37:37
Hola,

Voy al grano: tengo el siguiente texto almacenado (con ese formato) en x campo de x tabla de mysql:

TEXTO:

Este texto lo quiero mostrar con el mismo formato:

* xxxxxxxxxxxx
* xxxxxxxxxxxx
*xxxxxxxxxx

Estoy probando si el documento se muestra con este mismo formato en el navegador.

El problema que tengo es que cuando obtengo este texto de la base de datos y lo voy a mostrar dentro de un <div></div>, el texto se muestra corrido (osea sin el formato que trae desde la base de datos)

Ejemplo:

Este texto lo quiero mostrar con el mismo formato: * xxxxxxxxxxxx * xxxxxxxxxxxx *xxxxxxxxxx Estoy probando si el documento se muestra con este mismo formato en el navegador.

Y resulta que cuando monto ese mismo texto en un alert() <--"JavaScript" hay si me muestra el texto con el mismo formato que trae de la base de datos. Tengo la sensación de que es una bobada pero no "doy con el clavo".

Espero sus sugerencias...

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mostrar textos con el formato que traen desd my

Publicado por Diego Romero (1450 intervenciones) el 18/03/2010 19:10:04
Usa la función nl2br() para reemplazar los retornos de carro por el tag <br>

echo nl2br($texto);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar textos con el formato que traen desd my

Publicado por Daniel (7 intervenciones) el 18/03/2010 20:06:43
Gracias Diego, eso me funciono a la perfección.

Ahora bien no se si hay alguna manera también de reflejar los espacios en blanco o tabulaciones que tenga el texto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mostrar textos con el formato que traen desd my

Publicado por Diego Romero (1450 intervenciones) el 18/03/2010 23:57:22
Sí, pero tienes que tener mucho cuidado con lo que haces.

A ver. El navegador ignora los caracteres no imprimibles (por eso no te "reconoce" los saltos de línea y debes usar el tag <br> para "forzar" un salto), eso incluye el caracter de tabulación (ASCII 9), pero también ignora los espacios dobles, cuando el navegador encuentra más de un espacio en blanco solo muestra uno siempre y cuando ese espacio no esté a continuación de un tag de línea (inline tag) como por ejemplo <p>, <span> y el propio <br>, en ese caso lo ignora.
Sin embargo puedes "forzar" a que imprima un espacio en blanco usando la entidad   Esta entidad no es exactamente un espacio, en realidad sirve para no romper el flujo del renderizado (por ejemplo si pones <td></td> el navegador no imprime la celda de la tabla, pero si pones <td> </td> sí lo hace). Pero para todo caso práctico es como si fuera un espacio en blanco.

Entonces lo que deberías hacer es reemplazar los espacios en blanco con la cadena " ". Pero debes tener cuidado porque podrías estar reemplazando espacios en blanco que no deberías.

Supongamos que tienes esta cadena:

$cadena = "Esto es una cadena con dos espacios entre cada palabra";
$cadena = str_replace(" ","  ",$cadena); // reemplazo los espacios dobles
echo $cadena;

Obtendrás lo que deseas y en el código fuente verás algo así:
Esto  es  una  cadena  con  dos espacios  entre  cada  palabra

Pero si tienes una cadena como esta:
$cadena = "<span class='tipo1 tipo2">Esto es una cadena con un espacio entre cada palabra</span>"; // hay dos espacios después de <span

Luego del reemplazo tendrás esto:

<span  class='tipo1 tipo2'>Esto es una cadena con un espacio entre cada palabra</span>

Lo que rompe con la sintaxis HTML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar