Hola a todos.
Estoy trabajando en un proyecto para leer datos del buró de crédito. Me envían una cadena que tiene un formato muy peculiar. Debo obtener los datos y guardarlos en una variable cada uno.
La cadena es:
PN06ROMERO0006CUENTO0208GILBERTO0408010619750513ROCG750601HI10602SR0802MX090111101M1201MPA14APOCALIPTO 8900106CENTRO0212TLALNEPANTLA0319TLALNEPANTLA DE BAZ0402EM050554000120801022007PA18GIRASOLES 32 INT 30113SAN FRANCISCO0218DELEGACION TLALPAN0306MEXICO0402DF0505108101001H120803102005TL08031020050110BC120010010206BC-1TN041649128480125968560501I0601R0702CC0802MX1101M120101308050520011708100520131801M210556000220632000+230610000024010250152602012724111111111111222111XXX112280803092005290803102001310304832020536010370803092004380202TL08170520070110BY996000010206BC-1TN030955449490904097856932580501I0601I0702AU0802N$1002321101M120480001308011120071708090520131801A210580000220635000+24010260201TL08120420050110QM996000010206BC-1TN0309056825029041610110101017199940501I0601M0702RE0802UD090617705210032991101M1308191220021408280320051608311220081708310320051801A2106159347220628711+250112602012723111111122111211111111112808280220052908280420033603123370831072004380202TL08220119990110BH996000010206BC-1TN040711620200501I0601M0702HE0802UD10032401101M1308151219951408161019981608161019981708171119981801A210618783122020+24010250112602012705XX2112808171019982908010619983002CZ370801081998380202TL08041020050110AA996000010206BC-1TN04097856932580501I0601I0702AU0802N$1002321101M120101308151020071408010120051508010120051708041020051801M2105800002202
Está codificada de la siguiente manera:
PN: Es el identificador del segmento Nombre y contiene el apellido paterno
06: Es la longitud del dato
ROMERO: es el dato
00: Es el identificador de apellido materno
06: Es la longitud del dato
CUENTO: es el dato
02: Es el identificador del nombre
08: Es la longitud del dato
GILBERTO: es el dato
así hasta llegar a
PA: Es el identificador del segmento Dirección y contiene la calle y número (este segmento se puede repetir 4 veces)
14: es la longitud del dato
APOCALIPTO 890: es el dato
01: Es el identificador de colonia
06: Es la longitud del dato
CENTRO: es el dato
otra vez esto para llegar a
TL: es el identificador del segmento de cuentas y contiene fecha de actualizacion (este segmento se puede repetir n veces)
08: es la longitud del dato
03102005: es el dato
..y se repite para toda la cadena.
He intentado partir la cadena utilizando strpos() pero la verdad es que creo que vi demasiado la cadena y no encuentro como obtener cada uno de los datos.
A ver si alguien tiene una idea y la comenta.
De antemano muchas gracias.