Foros del Web » Programando para Internet » PHP »

Lectura incorrecta fichero ini

Estas en el tema de Lectura incorrecta fichero ini en el foro de PHP en Foros del Web. Hola. Llevo rato con esto. Tengo un fichero ini con este contenido: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original [direcciones] id = 1 titulo = "Callejuela, ...
  #1 (permalink)  
Antiguo 25/04/2016, 07:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Lectura incorrecta fichero ini

Hola. Llevo rato con esto. Tengo un fichero ini con este contenido:
Código HTML:
Ver original
  1. [direcciones]
  2. id = 1
  3. titulo = "Callejuela, 13"
  4. id = 2
  5. titulo = "Paseo 14"
  6. id = 3
  7. titulo = "Avenida 44"
  8.  
  9. [lugares]
  10. ciudad = "Madrid"
  11. pais = "España"
  12. ciudad = "Caracas"
  13. Pais = "Venezuela"

Y un fichero php con este contenido:
Código PHP:
Ver original
  1. $datos = parse_ini_file("fichero.ini", true);
  2. print_r($datos);

Pues en lugar de devolverme todas las lineas, me devuleve solo esto:

Array ( [direcciones] => Array ( [id] => 3 [titulo] => Avenida 44 ) [lugares] => Array ( [ciudad] => Caracas [pais] => España [Pais] => Venezuela ) )

A ver si me podeis decir porque

Gracias.
  #2 (permalink)  
Antiguo 25/04/2016, 07:44
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 9 meses
Puntos: 171
Respuesta: Lectura incorrecta fichero ini

De esa manera te devuelve los datos la funcion, esta en el manual parse_ini_file()

mira la documentación: http://php.net/manual/es/function.parse-ini-file.php

que resultado quieres???
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 25/04/2016, 08:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Lectura incorrecta fichero ini

No lo entiendo, me está devolviendo el ultimo bloque de valores (id 3), pero no los primeros (id 1 y 2).
  #4 (permalink)  
Antiguo 25/04/2016, 08:35
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.139
Antigüedad: 13 años, 9 meses
Puntos: 171
Respuesta: Lectura incorrecta fichero ini

Pruebalo asi:

Código INI:
Ver original
  1. [direcciones]
  2. id[] = 1
  3. titulo[] = "Callejuela, 13"
  4. id[] = 2
  5. titulo[] = "Paseo 14"
  6. id[] = 3
  7. titulo[] = "Avenida 44"
  8.  
  9. [lugares]
  10. ciudad[] = "Madrid"
  11. pais[] = "España"
  12. ciudad[] = "Caracas"
  13. Pais[] = "Venezuela"
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 25/04/2016, 08:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Lectura incorrecta fichero ini

Gracias por tu respuesta. Así devuelve todos los datos, pero no con el sentido correcto, además, entiendo que la función debería de leer los datos correctamente sin tener que añadir [].

Array ( [direcciones] => Array ( [id] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [titulo] => Array ( [0] => Callejuela, 13 [1] => Paseo 14 [2] => Avenida 44 ) ) [lugares] => Array ( [ciudad] => Array ( [0] => Madrid [1] => Caracas ) [pais] => Array ( [0] => España ) [Pais] => Array ( [0] => Venezuela ) ) )

Dicho esto, creo que el problema viene al repetir id, o titulo, pero tampoco debería de ser así, se supone que un fichero ini metes valores repetidos si quieres y luego la función debería de leerlo bien.

No se, algo estoy haciendo mal pero no se el que
  #6 (permalink)  
Antiguo 25/04/2016, 08:54
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 2 meses
Puntos: 123
Respuesta: Lectura incorrecta fichero ini

A ver el motivo de añadir [ ] es que de no hacerlo te está machacando el id.
Así que o bien utilizas [ ] para que lo tome como arrays independientes o bien defines el array de otra forma.

Piensa que la funcion hace esto:

Código PHP:
Ver original
  1. $direcciones[id]=1;
  2. $direcciones[id]=2;
  3. $direcciones[id]=3;
  4.  
  5. echo $direcciones[id]; // el valor es 3
__________________
Unset($vida['malRollo']);

Última edición por xerifandtomas; 25/04/2016 a las 08:59
  #7 (permalink)  
Antiguo 26/04/2016, 07:12
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Lectura incorrecta fichero ini

O mirandolo de otra forma, si el fichero .ini tiene valores repetidos, se los come, lo cual me parece muy mal.

Pero en fin, muchas gracias por tus respuestas.
  #8 (permalink)  
Antiguo 26/04/2016, 07:58
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 14 años, 2 meses
Puntos: 123
Respuesta: Lectura incorrecta fichero ini

Cita:
Iniciado por AitorLopez Ver Mensaje
O mirandolo de otra forma, si el fichero .ini tiene valores repetidos, se los come, lo cual me parece muy mal.

Pero en fin, muchas gracias por tus respuestas.
No sé los come, jajaja, es el comportamiento esperado. Una misma variable no puede almacenar varios valores a la vez de forma inequivoca. Para suplir eso existen los arrays, que asigna un identificador a cada valor.
__________________
Unset($vida['malRollo']);

Etiquetas: fichero, incorrecta, ini, lectura
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 14:07.