Respuesta: como puedo parsear un documento de texto con datos como este en php Cita:
Iniciado por stramin Se que no es la forma más correcta pero yo lo habría hecho así:
Código PHP:
Ver original//la variable donde esta toda la cadena se llama $cadena /*[["tipo","id","nombre","carpeta","extra1","extra2","extra3","extra4","public_name","public_desc","extra5","extra6","extra7"],["tipo","id","nombre","carpeta","extra1","extra2","extra3","extra4","public_name","public_desc","extra5","extra6","extra7"]] [["tipo","id","nombre","carpeta","extra1","extra2","extra3","extra4","public_name","public_desc","extra5","extra6","extra7"]]*/ //quito todas las " //cambio los ]][[ por ],[ " [[','],[',$cadena); /*[[tipo,id,nombre,carpeta,extra1,extra2,extra3,extra4,public_name,public_desc,extra5,extra6,extra7],[tipo,id,nombre,carpeta,extra1,extra2,extra3,extra4,public_name,public_desc,extra5,extra6,extra7]] [[tipo,id,nombre,carpeta,extra1,extra2,extra3,extra4,public_name,public_desc,extra5,extra6,extra7]]*/ //Guardo cada registro en un arreglo llamado registros /* tipo,id,nombre,carpeta,extra1,extra2,extra3,extra4,public_name,public_desc,extra5,extra6,extra7 tipo,id,nombre,carpeta,extra1,extra2,extra3,extra4,public_name,public_desc,extra5,extra6,extra7 tipo,id,nombre,carpeta,extra1,extra2,extra3,extra4,public_name,public_desc,extra5,extra6,extra7 */ //Luego guardo los datos del cada registro $x=0; foreach($registros as $registro){ $campos[$x]=explode(",",$registro); $x++; } //Para comprobar que estan todos los datos se pueden mostrar así: for($f=0;$campos[$f][0];$f++){ echo "MOSTRANDO REGISTRO $f<br>"; foreach($campos[$f] as $campo) echo "$campo<br>"; }
lo cual me devuelve esto:
Espero que se entienda el método
al final es un explode( de un explode()) justo cuando iba a empezar de nuevo a hacerlo, pero siguiendo los tips de maycolalvarez, me muestras este codigo que me ha ayudado mucho, y aunque al principio me di cuenta que uno de los datos no me lo tomaba bien(extra4) ya que dentro de este se guardan colores separados por comas, el codigo que pusiste, al borrar las comillas tomaba cada color como otro valor mas fuera del campo, pero ya eso es cuestion de modificar un poco y al menos gracias a ti y a maycolalvarez por intentar ayudarme ya puedo leer los datos de este archivo (que tantos dolores de cabeza me ha dado a la hora de intentar parsear) correctamente, ahora ya solo me queda hacerle algunas modificaciones y pasar todos esos datos a una base de datos
mil gracias a los 2, un saludo y si vuelvo a necsitar ayuda ya les avisare |