Foros del Web » Programando para Internet » PHP »

rellenar cadena con espacios en blanco

Estas en el tema de rellenar cadena con espacios en blanco en el foro de PHP en Foros del Web. Buenas a todos!! tengo un problema, no puedo rellenar una cadena con espacios en blanco en el centro. ejemplo articulo 1 nuevo x 12 arti ...
  #1 (permalink)  
Antiguo 14/12/2011, 16:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 13 años, 5 meses
Puntos: 20
rellenar cadena con espacios en blanco

Buenas a todos!! tengo un problema, no puedo rellenar una cadena con espacios en blanco en el centro. ejemplo

articulo 1 nuevo x 12
arti 2 otro x 6
articulos otro tipo nuevo x 15

y yo lo quiero ordenar asi.

articulo 1 nuevo x 12
arti 2 otro x 6
articulos otro tipo nuevo x 15

Eso se puede??
Desde ya muchas gracias!!!
  #2 (permalink)  
Antiguo 14/12/2011, 16:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 1 mes
Puntos: 2534
Respuesta: rellenar cadena con espacios en blanco

Yo la verdad no encuentro la diferencia entre los dos ejemplos que colocas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/12/2011, 16:40
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 13 años, 5 meses
Puntos: 20
Respuesta: rellenar cadena con espacios en blanco

jajaj es que se desalineo. pero es esto.


articulo 1 nuevo------------ x 12
arti 2 otro-------------------- x 6
articulos otro tipo nuevo-- x 15
  #4 (permalink)  
Antiguo 14/12/2011, 16:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 1 mes
Puntos: 2534
Respuesta: rellenar cadena con espacios en blanco

Ahh... usa sprintf(), hay varias opciones de formato, entre ellas la de relleno.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/12/2011, 16:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 13 años, 5 meses
Puntos: 20
Respuesta: rellenar cadena con espacios en blanco

articulo 1 nuevo------- x 12
arti 2 otro -----------x 6
articulos otro tipo nuevo x 15

haber, por que aca se ve bien, pero cuando lo publico se ve mal
  #6 (permalink)  
Antiguo 14/12/2011, 16:43
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 14 años
Puntos: 528
Respuesta: rellenar cadena con espacios en blanco

En texto plano por más que intentes no saldrán espacios en blanco.
No conozco ninguna función para rellenar por el medio, o no me he documentado sobre ella.
Quizá si partes las cadenas por los espacios en blanco y luego la pegas con los espacios que te hagan falta...
  #7 (permalink)  
Antiguo 14/12/2011, 16:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 13 años, 5 meses
Puntos: 20
Respuesta: rellenar cadena con espacios en blanco

podrias ser, pero me puede ayudar??
  #8 (permalink)  
Antiguo 14/12/2011, 17:14
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 14 años
Puntos: 528
Respuesta: rellenar cadena con espacios en blanco

Pues a grandes rasgos, y suponiendo que quieres una distribución uniforme, lo que se me ocurre:
1 Parte cada cadena con explode() por el espacio en blanco.
2 Suma la cantidad de letras que forman la cadena
3 Al tamaño que quieres llegar réstale la suma
4 Divide el resultado de la resta anterior entre el numero de palabras de la cadena -count()-
5 Agrega a cada palabra la cantidad de espacios en blanco de la división anterior.
6 Verifica si hay un sobrante dividiendo con %, si lo hay, agrega un espacio en alguna de las palabras.
7 Pega las palabras con implode() para volver a formar la cadena.

Etiquetas: blanco, espacios, rellenar, cadenas
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 21:43.