Foros del Web » Programando para Internet » PHP »

Dividir un string

Estas en el tema de Dividir un string en el foro de PHP en Foros del Web. Hola. Tengo una varibable string llamada miString. Así sería la estructura de la misma: miString=ip/sitio_web/usuario Este string se forma de varios grupos de ip/sitio_web/usuario, por ...
  #1 (permalink)  
Antiguo 22/12/2005, 10:04
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación Dividir un string

Hola. Tengo una varibable string llamada miString.
Así sería la estructura de la misma: miString=ip/sitio_web/usuario
Este string se forma de varios grupos de ip/sitio_web/usuario, por lo tanto voy a tener algo así por ejemplo: miString=ip/sitio_web/usuarioip/sitio_web/usuarioip/sitio_web/usuarioip/sitio_web/usuarioip/sitio_web/usuarioip/sitio_web/usuario.

Un ejemplo más claro del string sería:

Código:
miString=192.654.1.1/www.algo.com/pepe192.168.0.6/www.yahoo.com/rodrigo197.164.2.1/www.hola.com/roberto
... y así seguiría, como ven, siempre es la ip seguida de un sitio web y el usuario.
Lo que yo quiero hacer es encontrar una manera de separar los grupos en 3 arrays, uno de ips, otro de sitios web y otro de usuarios.

Como puedo hacerlo?? expresiones regulares??

Muchas gracias.
__________________
ratamaster
  #2 (permalink)  
Antiguo 22/12/2005, 10:08
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años
Puntos: 33
De acuerdo

Creo que seria de gran ayuda esta función
http://us2.php.net/manual/es/function.split.php
  #3 (permalink)  
Antiguo 22/12/2005, 10:10
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 3 meses
Puntos: 19
hola
primero antes que nada, tenes que armar el strign de manera que te sea facil separar ... veo que estas usando la '/' pero en el momento en el que se juntan el usuario y la IP no lo estas separando de ninguna forma, lo ideal seria que le puedas poner '/' para que despues con la funcion
EXPLODE -> http://ar2.php.net/manual/es/function.explode.php
es muy sencillo suerte !!!
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #4 (permalink)  
Antiguo 22/12/2005, 10:26
 
Fecha de Ingreso: octubre-2004
Ubicación: En algún lugar de la República Oriental del Uruguay
Mensajes: 366
Antigüedad: 19 años, 5 meses
Puntos: 0
Cita:
Iniciado por turco_7
hola
primero antes que nada, tenes que armar el strign de manera que te sea facil separar ... veo que estas usando la '/' pero en el momento en el que se juntan el usuario y la IP no lo estas separando de ninguna forma, lo ideal seria que le puedas poner '/' para que despues con la funcion
EXPLODE -> http://ar2.php.net/manual/es/function.explode.php
es muy sencillo suerte !!!

A que te referís con poner una / entre el usuario y la ip?? o sea, esa es parte del problema, yo no puedo modificar este string manualmente, ya lo tengo así.
Voy a ver con esa función split(), no se mucho de expresiones regulares, voy a tener que estudiarlo.
__________________
ratamaster
  #5 (permalink)  
Antiguo 22/12/2005, 10:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Así es .. lo que comenta turco_7 ... Si usases un separador entre tus "registros" .. algo tipo un espacio .. o un caracter que no se use en el resto de datos de los que serían los "campos" .. sería muchooooo más simple y seguro aplicar un "explode()" simplemente.

Si no hay forma de generar ese formato de los datos .. entonces deberías usar expresiones regulares para localizar el patron de tu "IP" y de ahí generar tu "array" con preg_match_all() o equivalentes (mi fuerte no son las expresiones regulares .. lo siento).

Un saludo,
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 11:36.