Foros del Web » Programando para Internet » PHP »

Subdividir cadena

Estas en el tema de Subdividir cadena en el foro de PHP en Foros del Web. Me encuentro con que tengo una cadena de texto con el siguiente valor: $cadena=" dato1 =valor del dato uno dato2= valor del dato dosdato2=[/B]valor del ...
  #1 (permalink)  
Antiguo 26/07/2006, 06:52
 
Fecha de Ingreso: julio-2006
Mensajes: 14
Antigüedad: 17 años, 8 meses
Puntos: 0
Subdividir cadena

Me encuentro con que tengo una cadena de texto con el siguiente valor:
$cadena="dato1=valor del dato unodato2=valor del dato dosdato2=[/B]valor del dato dosdato3=valor del dato tres"

es decir, tengo varias variables con su valor en una cadena de texto. Algunas pueden aparecer dos o más veces con lo cual debería tratarlas como un array, el orden no es siempre el mismo y no tengo ningún separador que indique el final de una y principio de otra....

¿A alguién se le ocurre como hacerlo?

Gracias de antemano
  #2 (permalink)  
Antiguo 26/07/2006, 07:17
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
dividir entre el nombre del dato y el dato en cuestion seria facil:
$listadatos=explode("=",$cadena);


si $cadena="dato1=eldato";
$listadatos[0]="dato1";
$listadatos[1]="eldato";

por ahi esta bien facil..

pero ahora.. si haces esto --> dato1=eldatodato2=elsegundodato
como quieres saber cuando acaba la cadena eldato?.. con el explode quedaria que $listadatos[1]="eldatodato2" lo cual estaria mal..

$cadena tendria que ser (a mi parecer) algo asi:

$cadena="dato1=eldato&dato2=elsegundodato";

ahi ya podrias hacer un explde por "&" y luego por "=" para sacar los valores
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 26/07/2006, 10:43
 
Fecha de Ingreso: mayo-2005
Mensajes: 31
Antigüedad: 18 años, 11 meses
Puntos: 0
por el igual (=)

si haces un explode por el igual, puedes retroceder las posiciones que ocupan la palabra "dato1", "dato2", etc...
puedes tambien llevar el contador de datos, de manera que cuando supere el 9, tendras que incrementar en 1 el contador de caracteres a retroceder.
"dato10" ocupa 6 caracteres, mientras que "dato9" ocupa solo 5.
si son de formato fijo, puedes hacerlo asi.

saludos
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 13:05.