Foros del Web » Programando para Internet » PHP »

Vaciar un archivo (para evitar acumular texto)

Estas en el tema de Vaciar un archivo (para evitar acumular texto) en el foro de PHP en Foros del Web. Buenas amigos, estoy realizando la siguiente operación: abro un archivo de texto, y mediante un formulario escribo dentro de el: lo actualizo, pero resulta que ...
  #1 (permalink)  
Antiguo 05/06/2006, 14:24
 
Fecha de Ingreso: mayo-2006
Mensajes: 34
Antigüedad: 11 años, 7 meses
Puntos: 0
Pregunta Vaciar un archivo (para evitar acumular texto)

Buenas amigos, estoy realizando la siguiente operación:

abro un archivo de texto, y mediante un formulario escribo dentro de el: lo actualizo, pero resulta que al reescribir sobre este archivo me sigue acumulando la información anterior, de manera que el resultado se visualiza por ejemplo:

Información vieja que no debería estar.Información nueva que si debe estar.

O sea que necesito VACIAR el *.txt antes de "llenarlo" nuevamente...alguien me puede ayudar?

Probé con ftruncate pero no me dió resultado...

El script que uso:

Código PHP:

$nombre_archivo 
"texto.txt";
   
   if (!
$gestor fopen($nombre_archivo,'r+')) $msg "No se puede abrir el archivo ($nombre_archivo)"; exit();
   
   if (!
$contenido fread($gestorfilesize($nombre_archivo))) $msg "No se puede leer el archivo ($nombre_archivo)"; exit();
   
   if(isset(
$_POST[contenido])){   
        
        if (
fwrite($gestor'texto='.stripslashes($_POST[contenido])) === FALSE$msg "No se puede escribir al archivo ($nombre_archivo)";
  
        
$msg "Éxito, se escribió ($_POST[contenido]) al archivo ($nombre_archivo)";
        
   }; 
Muchas gracias!
  #2 (permalink)  
Antiguo 05/06/2006, 14:34
 
Fecha de Ingreso: diciembre-2005
Mensajes: 122
Antigüedad: 12 años
Puntos: 0
si queres sobreescribir un archivo tenes que usar fopen('archivo.txt', 'w');
te falta usar fclose()
  #3 (permalink)  
Antiguo 05/06/2006, 14:35
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

Ya probaste con:

if (!$gestor = fopen($nombre_archivo,'w+'))

Saludillos.
  #4 (permalink)  
Antiguo 05/06/2006, 14:35
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Antigüedad: 13 años, 2 meses
Puntos: 4
Solo tienes que cambiar esto:

fopen($nombre_archivo,'r+')

Por esto:

fopen($nombre_archivo,'w+')

Fijate en la w que indica el modo en el que se abre. Con r+ se escribe pero se conserva lo antiguo, con w+ todo el contenido anterior se elimina.

Para más información te recomiendo que te leas la página:

es.php.net/fopen

Saludos,
__________________
sergiold
  #5 (permalink)  
Antiguo 06/06/2006, 09:25
 
Fecha de Ingreso: mayo-2006
Mensajes: 34
Antigüedad: 11 años, 7 meses
Puntos: 0
Buenisimo, muchas graciaas!
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 10:52.