Foros del Web » Programando para Internet » PHP »

Extraer cadena entre dos caracteres

Estas en el tema de Extraer cadena entre dos caracteres en el foro de PHP en Foros del Web. Buenos dias!! Tengo una pregunta que apriori parece facil pero no consigo como hacerlo. Yo tengo una cadena de caracteres que es esta: 2#GC123#c@#AB567#me@ El ...
  #1 (permalink)  
Antiguo 12/01/2011, 04:02
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Extraer cadena entre dos caracteres

Buenos dias!!

Tengo una pregunta que apriori parece facil pero no consigo como hacerlo.

Yo tengo una cadena de caracteres que es esta:

2#GC123#c@#AB567#me@

El significado de la cadena es el siguiente:

Los valores que hay entre # son matriculas de coches (GC123 y AB567)
Los valores que hay antes de @ hasta el # es el tipo de averia que tiene (c y me)
El primer valor es el numero de matriculas que hay

Lo que quiero hacer es extraer estos valores y guardarlos en variables.
Con "substr" extraigo valores a partir de cierta posicion, pero lo que yo quiero es extraer valores que hay entre dos caracteres.

Ademas borrar esa cadena que extraigo para asi cuando el bucle vuelva a leer la cadena no guarde la misma matricula y averia, sino que pase a la siguiente

De momento he guardado en una variable el numero de matriculas que hay con:

$cantidad=substr($cadena,0,1);

Así ya sé cuantas veces tiene que repetirse el bucle.
Ahora me falta guardar la matricula, pero la matricula no siempre tiene el mismo número de caracteres, por eso no me sirve substr.

¿Alguien me puede ayudar?

Muchas Gracias a tod@s!
  #2 (permalink)  
Antiguo 12/01/2011, 04:42
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Respuesta: Extraer cadena entre dos caracteres

<?php
$_SESSION['matriculas'];
$_SESSION['matriculas']->matriculas;

$cadena = "2#GC123#c@#AB567#me@";

$_SESSION['matriculas']->numero = substr($cadena,0,1);
$cadena = substr($cadena,count($cadena));
$datos = split("@",$cadena);

for ($i=0;$i< count($datos)-1;$i++){
$subdatos = split("#",$datos[$i]);

$_SESSION['matriculas']->matriculas[$i] = array($i,$subdatos[1],$subdatos[2]);

}

for ($a = 0;$a<count($_SESSION['matriculas']->matriculas);$a++){
// print $_SESSION['matriculas']->matriculas[$a][0];
// print $_SESSION['matriculas']->matriculas[$a][1];
// print $_SESSION['matriculas']->matriculas[$a][2];
print "ID: ".$_SESSION['matriculas']->matriculas[$a][0];
print "<br>";
print "Matricula: ".$_SESSION['matriculas']->matriculas[$a][1];
print "<br>";
print "Averia: ".$_SESSION['matriculas']->matriculas[$a][2];
print "<br>";
print "<hr>";
print "<br>";
}

?>


Ahí tienes el código. Que lo disfrutes. He guardado las matrículas en una variable de sesión y dado valores de array a las matrículas.
  #3 (permalink)  
Antiguo 12/01/2011, 05:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Extraer cadena entre dos caracteres

Muchas Gracias Manuellama!!!!!!!

La verdad que me vino perfecto, y asi le hecho un vistazo y estudio como funciona.

Muchisimas gracias por preocuparte, un saludo ¡¡¡¡besosss!!!!

Etiquetas: caracteres, dos, extraer, 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:53.