Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/11/2005, 06:01
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
kotosh

En general en el trabajo con archivos de texto plano .. la lectura y escritura se hace secuencial (no sólo en "PHP" sino en cualquier lenguaje). El hecho de pretender escribir algo en cierta parte de un archivo de texto plano .. por lo menos en PHP no hay función "nativa" que lo haga. Si no lo hace tu lenguaje de turno tendrías que implementar tu própio método:

El archivo en principio debes leerlo. Tu defines una estructura mas o menos clara: Una línea por "variable" y el "dato" a modificar sería lo que venga despues del primer = (igual) ..

En definitiva .. leer el archivo lo puedes hacer vía:
file()
www.php.net/file

Ahí obtendras un array que corresponderá a una línea por elemento del mismo. Luego tendrás que "parsear" esa cadena (línea que obtines) para buscar tu patron que es donde empieza tu "dato" a sustituir. Esto lo puedes hacer con expresiones regulares (tema que no es de PHP própio sino que también lo usan y definen otros lenguajes).

Un tutorial al respecto:
http://www.ignside.net/man/php/regex.3.php

En este punto ya tendrías localizado el dato a modificar y lo más problable que modificado. Bien, .. una vez generado tu nuevo "array" con los valores alterados o incluso creado nuevos .. tendrías que generar de nuevo el archivo a partir de ese array. Aquí volvemos a las funciones fopen() .. etc para "escribir" el archivo -por completo- nuevamente.

En la documentación oficial sobre la función parse_ini() (http://www.php.net/parse_ini_file) si te fijas en los comentarios de los usuarios tienes várias propuestas para leer/buscar sobre archivos de texto plano con ese tipo de estructura (o parecida).

Y .. si buscas en sitios como www.phpclasses.org seguro que alguien ya habrá diseñado algo similar (de hecho si tu lo llegas hacer no estaría de más compartirlo con la comunidad).

Por ejemplo:
http://www.phpclasses.org/browse/package/2628.html
(genera archivos tipo .ini .. es decir . .no son .php con código PHP tipo $variable="valor"; sino variable = valor que serán "parseados" por la función parse_ini() para que puedas usar esos datos en tu script PHP pero como un array que es lo que este entrega).

Un saludo,