Foros del Web » Programando para Internet » PHP »

Espacios en texto

Estas en el tema de Espacios en texto en el foro de PHP en Foros del Web. Buenas!! Les comento: Tengo un gestor de noticias, y lo que quiero es que al mostrase las noticias sea con el formato que las han ...
  #1 (permalink)  
Antiguo 18/03/2010, 10:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 17 años, 2 meses
Puntos: 1
Espacios en texto

Buenas!!

Les comento:

Tengo un gestor de noticias, y lo que quiero es que al mostrase las noticias sea con el formato que las han introducido, es decir, que si pongo entre dos palabras 6 espacios me los muestre.

Lo que quiero es un estilo al nl2br() con los saltos de línea pero con los espacios.

¿Alguien sabe cómo puedo solucionarlo?
  #2 (permalink)  
Antiguo 18/03/2010, 10:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Espacios en texto

usa str_replace(), recuerda que los espacios solidos en HTML son  
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/03/2010, 10:18
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Espacios en texto

si alguien usa 6 espacios, estos se guardan en la base de datos y se muestran tal cual.. el problema que tienes es que el navegador no te tomara mas de 1 espacio seguido...

puedes arreglarlo transformando los espacios a su etiqueta  

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 18/03/2010, 10:21
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Espacios en texto

htmlentities

http://php.net/manual/en/function.htmlentities.php
  #5 (permalink)  
Antiguo 18/03/2010, 10:25
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Espacios en texto

Cita:
Iniciado por dantrix Ver Mensaje
htmlentities no te transforma los espacios a  
fijate en la misma url que posteaste
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 18/03/2010, 11:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Espacios en texto

Como bien ha comentado antes htmlentities no convierte los espacios, ya lo había probado antes y no funcionaba.

Ya he conseguido solucionarlo, lo que he usado es str_replace

Una pregunta, a ver si me podéis decir cómo slucionarlo:

La línea esta para los espacios que comento es:
Código PHP:
<p><?php echo nl2br(str_replace(" ","&nbsp;",$cadena));?>
Si la ponía así directamente perdía el formato, respeta los espacios y los saltos, pero aparece todo en una línea, es decir no respeta la etiqueta <p>. Lo que he hecho es dentro del caracter a buscar le he puesto que busque dos espacios y los sustituya por dos veces &nbsp; y así sí lo hace.

¿Hay otra forma de hacerlo? ¿Por qué hace eso?

Saludos y gracias
  #7 (permalink)  
Antiguo 18/03/2010, 11:19
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Espacios en texto

mm podrias hacerlo con una expresion regular

Código PHP:
Ver original
  1. echo preg_replace('#[\s]{2,}#', "&nbsp;", $cadena);

prueba y me comentas
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 18/03/2010, 11:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Espacios en texto

pues imagina si tuvieras esto:
Código HTML:
<p class="algo mas">texto con espacios</p> 
si lo piensas con calma, el espacio es un carácter necesario en casi cualquier lenguaje... así no mas!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: espacios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:42.