Foros del Web » Programando para Internet » PHP »

Duda con funciones de sistema de fichero

Estas en el tema de Duda con funciones de sistema de fichero en el foro de PHP en Foros del Web. Hola: Estoy creando un script para crear backups cada vez que se realizen acciones sobre la base de datos, es decir, salvar en un fichero. ...
  #1 (permalink)  
Antiguo 23/01/2004, 16:30
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Duda con funciones de sistema de fichero

Hola:
Estoy creando un script para crear backups cada vez que se realizen acciones sobre la base de datos, es decir, salvar en un fichero. txt o .dat las consultas realizadas a la BD de forma que si se me chiva por cualquier cosa poder insertar toda la información nuevamente. Para esto estoy creando una función que tiene este formato:
Código PHP:
function updatelogs($fichero,$mode,$text){
     
$fileopen fopen($fichero,$mode);
     
fseek($fileopen,0);
      if (
fwrite($fileopen,$text,filesize($fileopen))){
          echo 
"Se han guardado los datos correctamente";
      }else{
          echo 
"No se han podido guardar los datos";
      }
     
fclose($fileopen);
 } 
ahora viene mi duda como puedo crear el archivo $fichero que le paso como parámetro, pues las quiero guardar por día, es decir, en un fichero llamado por ejemplo 100104.txt poner todos los eventos realizados sobre la BD del día 10 de enero del 2004 y como puedo crear ese mismo fichero $fichero en un directorio llamado logs que se encuentra dentro de la raíz del sitio. Ah otra cosa con la tmpfile puedo crear este fichero.?

¿Me explico bien?

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 23/01/2004, 20:58
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Hice esto ...

Hice esto para ver si resolvía pero ahora se puso peor la cosa.
Código PHP:
 function updatelogs($mode,$text){
     
$dia date("d");
     
$mes date("m");
     
$ano date("Y");
     
$file $dia."-".$mes."-".$ano;
     
$fileopen fopen($file.".dat",$mode);
     
$size filesize($file);
     
fseek($fileopen,$size);
      if (
fwrite($fileopen,$text,$size)){
          echo 
"Se han guardado los datos correctamente";
      }else{
          echo 
"No se han podido guardar los datos";
      }
     
fclose($fileopen);
 } 
la idea es que me genere cada vez que se realicen consultas a la BD un fichero de logs de manera que se vayan guardando todos los datos por día de ejecución. He pensado en la alternativa anterior pero me da este error:
Cita:
Warning: filesize(): Stat failed for 23-01-2004 (errno=2 - No such file or directory) in c:\archivos de programa\apache group\apache\htdocs\newsite\includes\functions.inc .php on line 244
No se han podido guardar los datos
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 23/01/2004, 21:44
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Ya lo resolvi

Ya resolvi el error anterior, siempre es bueno investigar un poquito. La solucion es esta:
Código PHP:
 function updatelogs($mode,$text){
     
$dia date("d");
     
$mes date("m");
     
$ano date("Y");
     
$directory "logs";
     
$file $dia."-".$mes."-".$ano;
     
$fileopen fopen($directory."/".$file.".txt",$mode);
      
fseek($fileopen,0);
     
fwrite($fileopen,$text."\13");
     
fclose($fileopen);
 } 
Ahora tengo otra duda como inserto un retorno de linea despues de cada insercion. Es decir que me quede de esta forma:
cadena1
cadena2
cadena3

en vez de
cadena1cadena2cadena3

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 25/01/2004, 02:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Reyner .. Por favor .. no DUPLIQUES tus preguntas .. Si ves que no obtienes respuesta .. insiste en tu pregunta inicial.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 25/01/2004, 13:03
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
NO

NO fue mi intención publicarla doble Cluster lo que paso fue que mi navegador se puso lento y entonces le di stop y luego actualizar despues me di cuenta que ya la pregunta anterior se habia enviado antes pero no tenia forma de borrarla.

Salu2
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 26/01/2004, 06:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, cuando te suceda eso .. avisa a un moderador por MP (mensaje privado).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 20:45.