ayuda para formatear una cadena

Iniciado por soru13, 10 Noviembre 2012, 15:09 PM

0 Miembros y 1 Visitante están viendo este tema.

soru13

Hola, tengo un problemilla, resulta que tengo un mapa de google maps donde muestro distintas marcas con su ventanita de información y demás.

El caso es que he encontrado un problema cuando un usuario en la descripción de la ventanita me pone saltos de línea (y no me carga nada del mapa), por ejemplo:

descripcion

Hola soy Pepito.

Tengo 21 años.


Si se guarda así en la base de datos, no me carga el mapa como os he dicho antes. Pero sin esos saltos si que carga el mapa.

descripcion

Hola soy Pepito. Tengo 21 años.


Así si funciona.

Entonces pensé en formatear el texto y poner etiquetas HTML para los saltos de línea y guardarlo en la base de datos. Para esto usé la función de php nl2br() y me quedaba algo como esto en la base de datos:

descripcion
Hola soy Pepito.<br /><br />
Tengo 21 años.


Pero resulta que aunque tenga los <br> si hay un salgo de línea no me carga el mapa, es decir, que tiene que estar todo en una línea para que funcione el mapa.

ejemplo de como debería quedar en la base de datos
Hola soy Pepito.<br /><br />Tengo 21 años.

Entonces usé str_replace(), de la siguiente forma:

Código (php) [Seleccionar]
$descripcion = nl2br(str_replace(" ","&nbsp;",$row['descripcion']));

Pero no me escribe los &nbsp; en la base de datos (sí me los muestra en HTML haciendo un echo), sólo me pone los <br> como en el siguiente código:

descripcion
Hola soy Pepito.<br /><br />
Tengo 21 años.


y claro está, así no funciona.

¿Alguien sabe porqué no me guarda los espacios en &nbsp;? He probado hasta quitar el cotejamiento en el campo de la base de datos y tampoco.

Gracias.

‭lipman

Me paro en "ejemplo de como deberia quedarse en la base de datos".

Si tienes esto:
CitarHola soy Pepito.

Tengo 21 años.

Y lo quieres así:
CitarHola soy Pepito.<br /><br />Tengo 21 años.

Simplemente haz:

Código (php-brief) [Seleccionar]
$descripcion = str_replace("
","<br />",$row['descripcion']);


Un saludo