Foros del Web » Programando para Internet » PHP »

fseek o alguna función para modificar un archivo¿?

Estas en el tema de fseek o alguna función para modificar un archivo¿? en el foro de PHP en Foros del Web. Amigos, compañeros de andanzas, que me guían en estos caminos confusos del PHP... :P Alguien puede explicarme más o menos como se utiliza el fseek, ...
  #1 (permalink)  
Antiguo 07/08/2002, 21:30
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
fseek o alguna función para modificar un archivo¿?

Amigos, compañeros de andanzas, que me guían en estos caminos confusos del PHP... :P

Alguien puede explicarme más o menos como se utiliza el fseek, o alguna función para utilizar en un arhivo, con la intención de modificar una pequeña parte del mismo. Es decir, tengo un archivo.txt que tiene cierta información, pero quiero cambiar un pedazo del archivo que se encuentra en la tercera línea, por ej:

que mundo fascinante el pHP.
los pájaros merodeaban la zona.
dijo que NO al señor.
moriré por la patria.

y quiero modificar el "NO" que aparece en la 3era línea por "SI". Para que quede de la siguiente manera:

que mundo fascinante el pHP.
los pájaros merodeaban la zona.
dijo que SI al señor.
moriré por la patria.

Les agradecería, pero MUCHO, si alguien sabe un cachito más que yo, que me de una manito... ;)

|: el chapu :|
  #2 (permalink)  
Antiguo 08/08/2002, 00:24
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: fseek o alguna función para modificar un archivo¿?

Hola, si lo que tienes que modificar esta en una linea determinada puedes hacer algo asi:

Código:
$contenido = file("texto.txt");
// Cambias el contenido
$contenido[2]= "dijo SI al Señor";
// o usando str_replace. Depende lo que necesites:
$contenido[2]= str_replace("NO", "SI", $contenido[2);
//una vez que cambiaste el contenido lo guardas

$nuevoTexto = implode("", $contenido);
$fs = fopen("texto.txt", 'w');
fwrite($fs, $nuevoTexto);
fclose($fs);
//Listo.
Repasando un poco la idea, es abrir el archivo, modificar el dato, y luego sobreescribir el ya existente por el nuevo contenido.

Espero que te ayude.
Saludos!

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #3 (permalink)  
Antiguo 08/08/2002, 20:25
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: fseek o alguna función para modificar un archivo¿?

NOK, SE TE AGRADECE MUCHO, era exactamente lo que buscaba;
loco, me canso de decir que me copa la buena onda que hay en estos foros, la verdad que todo esto muy COPADO... MILES DE GRACIAS NOK!
un saludo,

|: el chapu :|
  #4 (permalink)  
Antiguo 08/08/2002, 23:00
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: fseek o alguna función para modificar un archivo¿?

NOK, acá estoy, tratando de entender las líneas que me diste para escribir en el archivo y modificar parte del mismo, pero empiezan a aparecer problemas o dudas...
por ej: que utilidad tiene el implode exactamente? , cómo entiende la PC dónde escribir? (osea he comprobado que sí, modifica la línea que deseo pero no hace lo que yo quiero puntualmente) y otra cosa es que, al re-escribir el arhivo, baja de a 2 renglones para escribir una nueva línea, cómo evito esto?

Estas son algunas de las dudas...
espero alguna &quot;aiudita&quot;, un saludo ;)

|: el chapu :|
  #5 (permalink)  
Antiguo 09/08/2002, 07:42
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: fseek o alguna función para modificar un archivo¿?

Chapu:
Empecemos desde el principio, la sentencia file() lo que hace es devolver el contenido de un alchivo en un array, donde cada elemento del array es una linea del archivo, o sea toma como delimitador al &quot;\n&quot;. El implode por el contrario, toma un arreglo y lo implota (?), es decir te devuelve un texto formado por todos los elementos del array juntos y consecutivos, separados por el primer parametro de la funcion, en este caso es &quot;&quot; es te puede ser cualquier otra cosa. Para especificarle donde escribir tienes que indicarle el path. Por ej. si pones &quot;./text.txt&quot; lo escribirá en el mismo directorio donde se encuentra el script.
Con respecto a las doble lineas, no se exactamente cual puede ser el problema, chea que tu editor tenga seteado el modo correcto de archivo segun tu SO (win, linux, mac, dos).

Para mas info, sobre las funciones del script consulta el manual de php. Te recominedo que tengas una copia en tu maquina, es mas comodo. Puedes bajarte la version oficial en español de zonaphp.com

Saludos.

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>
  #6 (permalink)  
Antiguo 09/08/2002, 21:27
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: fseek o alguna función para modificar un archivo¿?

NOK, cómo dice q' le va?
Ya está, he solucionado el problema;
después de mirarlo, leerlo y mirarlo, y también leerlo, y de vez en cuando mirarlo, jaja, entendí mas o menos como funcionaba y pude solucionar el problema que tenía, muchas gracias por TODO!

Reflexión o más bien moraleja: &quot;leelo, vuelve a leerlo, prueba y vuelve a probar, y por sobre todas las cosas paciencia y concentración...&quot;
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 00:03.