Foros del Web » Programando para Internet » PHP »

Poner varios espacios a una cadena de texto

Estas en el tema de Poner varios espacios a una cadena de texto en el foro de PHP en Foros del Web. Imaginaros que tengo 5 datos que son 1,2,3,4,5 y los quiero separar con espacios, con 5 espacios por ejemplo, para que finalmente la cosa se ...
  #1 (permalink)  
Antiguo 26/07/2006, 05:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 182
Antigüedad: 19 años, 7 meses
Puntos: 1
Pregunta Poner varios espacios a una cadena de texto

Imaginaros que tengo 5 datos que son 1,2,3,4,5 y los quiero separar con espacios, con 5 espacios por ejemplo, para que finalmente la cosa se viera asi: "1 2 3 4 5".

La cosa es que la variable donde esten los numeros puestos de la forma de arriba la leo en un script, por eso tengo que montar antes la estructura para que en el script solo tenga que decirle <? echo $frase; ?> y aparezca eso.

La cosa es que al igual que hay caracteres especiales como \n, \t, \r ... no hay ninguno que yo sepa para poner varios espacios, tantos como quiera, dado que si pongo &nbsp; pues me pone eso textualmente, y \t solo hace caso a la primera, no se pueden acumular.

¿Que forma habría para poner dichos espacios?

Un saludo y gracias por la atención
  #2 (permalink)  
Antiguo 26/07/2006, 06:11
 
Fecha de Ingreso: agosto-2004
Mensajes: 182
Antigüedad: 19 años, 7 meses
Puntos: 1
Ya está, si pones echo "1 \x1F \x1F \x1F \x1F \x1F 2" salen 5 espacios entre ambos, no he encontrado otra forma y mira que he buscado.

Gracias a los que lo habeis intentado.
  #3 (permalink)  
Antiguo 26/07/2006, 06:12
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
los datos los tienes en variables separadas inicialmente?.. en un array?... donde?

si los tienes en un array hces un bucle for recorriendo el array y añadiendo a la cadena final el dato de la posicion i + el espacio:
$cadenafinal="";
for ($i=0;$i<count($elarray);$i++)
$cadenafinal.=$elarray[$i]." ";

pero lo primero ayudaria saber como estan guardados esos datos...
__________________
ALOZORRO v5.0 (ahora en .es)
  #4 (permalink)  
Antiguo 26/07/2006, 06:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 182
Antigüedad: 19 años, 7 meses
Puntos: 1
Se supone que es:

$var1 = "1";
$var2 = "2";
$var3 = "3";

$separador = " \x1F \x1F \x1F \x1F \x1F";

$fraseFinal = $var1.$separador.$var2.$separador.$var3;

echo $fraseFinal;

Sería así, pero las cosas están metidas en scripts y toman datos de una BD y tal, pero lo dicho, el "echo" está en un script, y lo demás lo monto antes para montar $fraseFinal y que en el script solo tenga que hacer el "echo", con lo cual tenía que buscar algún caracter de escape que fuera el espacio al igual que existe el \n o \t por ejemplo.

No obstante ya está todo arreglado, gracias ;)
  #5 (permalink)  
Antiguo 26/07/2006, 07:06
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
pero si no haría falta hacer eso.
con esto ya serviria:

$fraseFinal = $var1." ".$var2." ".$var3." "$var4;

ahi tienes 1, 2 y 4 espacios entre var1 var2 var3 y var4 respectivamente
__________________
ALOZORRO v5.0 (ahora en .es)
  #6 (permalink)  
Antiguo 26/07/2006, 08:40
 
Fecha de Ingreso: agosto-2004
Mensajes: 182
Antigüedad: 19 años, 7 meses
Puntos: 1
Cita:
Iniciado por Azrael666
pero si no haría falta hacer eso.
con esto ya serviria:

$fraseFinal = $var1." ".$var2." ".$var3." "$var4;

ahi tienes 1, 2 y 4 espacios entre var1 var2 var3 y var4 respectivamente
De esa manera no puedo poner más de un espacio entre variable y variable, y yo queria poner unos 50 espacios entre variable y variable.

Osea ... " ____________________" todo este trozo en blanco (imaginate que no hay guiones) es igual a " " cuando le haces un "echo".

No era tan sencillo ...
  #7 (permalink)  
Antiguo 26/07/2006, 08:47
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
No se si te entendi bien pero creo qeu esta tirado combinando explode e implode mira.

Código PHP:
// si los valores estan así
   
$valores "1,2,3,4,5";

   
// Creamos una fila del array con cada número
   
$array_valores explode(",",$valores);

// si los tienes en varaibles suelta tipo $var1 = 1, $var2= 2;

  // haces una array con ellas 
   
for($i=1;$i aqui pon el numero de variables que tengas$i++){
       
$array_valores[] = $var$i;
   }

// En cualqueir caso 

  //creamos una cadena de texto separada por expacios por cada fila del array
  // si en lugar de un espacio quieres 50 pues pones entre las comillas 50 espacios
  
$valores_espacios implode(" ",$array_valores);

  echo 
$valores_espacios
Espero que sea eso lo que quieres
Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa

Última edición por Lord of freaks; 26/07/2006 a las 08:54
  #8 (permalink)  
Antiguo 26/07/2006, 08:58
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
Hola... ACLARO....

<?php

$var1 = "1";
$var2 = "2";
$var3 = "3";

$tmp_cad = "var";
$cad_sep = " "; //Cadena separadora.... coloquen cuantos espacios quieran acá.
for ($x=1; $x<4; $x++) // El 4 se remplazaría por el número de variables $varX que tengan.
{
$cad_final .= ${$tmp_cad.$x}.$cad_sep;
}

echo $cad_final;
?>

Prueba esto para ver.

Éxitos.

Última edición por Hollman; 26/07/2006 a las 10:00
  #9 (permalink)  
Antiguo 26/07/2006, 09:50
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Creo q lo q dice LordOf -Freaks es mas apropiado para lo q pide Gugu_Tata.... ya q lo dice Hollman, al parecer.. solo pondria una espacio entre variable y variable..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #10 (permalink)  
Antiguo 26/07/2006, 09:53
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
Cita:
De esa manera no puedo poner más de un espacio entre variable y variable, y yo queria poner unos 50 espacios entre variable y variable.

Osea ... " ____________________" todo este trozo en blanco (imaginate que no hay guiones) es igual a " " cuando le haces un "echo".

No era tan sencillo ...
$fraseFinal = "<pre>".$var1." ".$var2." ".$var3." "$var4."</pre>";
__________________
ALOZORRO v5.0 (ahora en .es)
  #11 (permalink)  
Antiguo 26/07/2006, 10:03
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
Cita:
Iniciado por B**
Creo q lo q dice LordOf -Freaks es mas apropiado para lo q pide Gugu_Tata.... ya q lo dice Hollman, al parecer.. solo pondria una espacio entre variable y variable..
En parte tienes razón, pero si analizamos el código al colocar $cad_sep = " " ello quiere decir que se puede modificar el contenido de $cad_sep a lo que desee poner en la cadena, sea un espacio, 10, etc y al concatenarse en el ciclo da lo deseado.

Éxitos.
  #12 (permalink)  
Antiguo 26/07/2006, 10:09
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Cita:
Iniciado por Hollman
En parte tienes razón, pero si analizamos el código al colocar $cad_sep = " " ello quiere decir que se puede modificar el contenido de $cad_sep a lo que desee poner en la cadena, sea un espacio, 10, etc y al concatenarse en el ciclo da lo deseado.

Éxitos.
Si... tienex razon... no habia puesto atencion a ese detalle..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #13 (permalink)  
Antiguo 26/07/2006, 10:23
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Y si mete las variables en un array y hace uso de la función implode?

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #14 (permalink)  
Antiguo 26/07/2006, 10:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Si sólo necesitas cambiar una cadena específica (la coma) por otra cadena específica (los espacios), haz el reemplazo directamente con str_replace()
Código PHP:
$valores "1,2,3,4,5";
$separador " "// O el que quieras
echo str_replace(','$separador$valores);//Cambiamos la coma por el $separador 
Saludos
  #15 (permalink)  
Antiguo 26/07/2006, 11:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 182
Antigüedad: 19 años, 7 meses
Puntos: 1
Cita:
Iniciado por Hollman
En parte tienes razón, pero si analizamos el código al colocar $cad_sep = " " ello quiere decir que se puede modificar el contenido de $cad_sep a lo que desee poner en la cadena, sea un espacio, 10, etc y al concatenarse en el ciclo da lo deseado.

Éxitos.
Si ahí pones mil espacios entre esas 2 comillas solo te cuenta 1 espacio, por ello hay que tomar la decision que yo he dicho con la solucion.

Sino comprobadlo vosotros mismos, intentad con espacios asi entre comillas (estos espacios hay que darselos a una variable que sea $varespacios=" ";)

El ejemplo lo vuelvo a repetir (que conste que esto ya da el resultado que buscaba):

Código:
$var1 = "1";
$var2 = "2";
$var3 = "3";

$separador = " \x1F \x1F \x1F \x1F \x1F";

$fraseFinal = $var1.$separador.$var2.$separador.$var3;

echo $fraseFinal;
La cosa sería encontrar algo por lo que cambiar lo que hay en la variable $separador e hiciera los espacios que uno quisiera, sean 5 o sean 1000. Insisto que si $separador = " "; pero con muchos espacios dentros, solo cuenta 1 en el script donde se ejecuta.

Saludos!!
  #16 (permalink)  
Antiguo 26/07/2006, 12:44
Avatar de Hollman  
Fecha de Ingreso: enero-2003
Ubicación: Bogotá - Colombia
Mensajes: 202
Antigüedad: 21 años, 2 meses
Puntos: 1
Hola... si implementas una funcion como:

<?php
function retorna_x_espacios($cuantos)
{ for ($x=0; $x<$cuantos; $x++)
{ $cad .= " \x1F";}
return $cad;
}

$var1 = "1";
$var2 = "2";
$var3 = "3";

$tmp_cad = "var";
$cad_sep = retorna_x_espacios(30);
for ($x=1; $x<4; $x++) // El 4 se remplazaría por el número de variables $varX que tengan.
{
$cad_final .= ${$tmp_cad.$x}.$cad_sep;
}

echo $cad_final;
?>

Prueba esto para ver.

Éxitos.
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 06:34.