Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: soru13 en 10 Noviembre 2012, 15:09 pm



Título: ayuda para formatear una cadena
Publicado por: soru13 en 10 Noviembre 2012, 15:09 pm
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
Código:
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
Código:
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
Código:
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
Código:
Hola soy Pepito.<br /><br />Tengo 21 años.

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

Código
  1. $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
Código:
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.


Título: Re: ayuda para formatear una cadena
Publicado por: ‭lipman en 11 Noviembre 2012, 11:02 am
Me paro en "ejemplo de como deberia quedarse en la base de datos".

Si tienes esto:
Citar
Hola soy Pepito.

Tengo 21 años.

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

Simplemente haz:

Código
  1. $descripcion = str_replace("
  2. ","<br />",$row['descripcion']);

Un saludo


Título: Re: ayuda para formatear una cadena
Publicado por: soru13 en 11 Noviembre 2012, 13:47 pm
Ya lo conseguí, gracias.