Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zerowanie plików z danymi:-(
Forum PHP.pl > Forum > PHP
Sajm_on
Witam!
Mam nasptepujacy problem:
napisalem skrypt w php ktory zapisuje dane do pliku. Jednak co jakis czas np co dzien lub dwa plik jest pusty-zeruje sie zawartosc lub przycina;-( Co moze byc przyczyna? Serwer sie resetuje czasem w jakism krytycznym moncie czy zle skrypt napsiany jest?
O to fragment tego skryptu:

  1. <?php
  2.  
  3.    $file=fopen(&#092;"download.txt\", \"r+\"); // odczyt z glownego pliku download
  4.    flock($file, 2);
  5.    $danezpliku=fread($file, filesize(&#092;"download.txt\"));
  6.  
  7. (...)
  8.  
  9.    if(file_exists(&#092;"$sciezka\")) { // zabezpieczenie przed nieistnieniem pliku
  10.  
  11. (...)
  12.  
  13. if($daneplik) { // dodane i zmodyfikowane
  14.         ftruncate($file, 0); // wyzerownie pliku
  15.         fseek($file, 0);
  16.          fwrite($file, $daneplik); // zapis do pliku nowych danych
  17. }
  18.       flock($file, 3);
  19.       fclose($file);
  20.      
  21.       header(&#092;"Location: $sciezka\"); //wysłanie do przeglądarki informacji o lokalizacji pliku
  22.  
  23.    } // koniec ifa
  24.    else {
  25.        flock($file, 3);
  26.        fclose($file);
  27.        echo &#092;"Plik nie istnieje...\";
  28.    }
  29.  
  30. ?>


Jak toi ewntualnie przerobic?
nospor
Cytat
ftruncate($file, 0); // wyzerownie pliku
fseek($file, 0);
if($daneplik) // to dodalem ostatnio
fwrite($file, $daneplik); // zapis do pliku nowych danych

Najpierw czyścisz plik, a potem ewentualnie jeżeli są dane to wpisujesz do pliku. A co jeśli danych nie ma? Wówczas plik się wyczyszcza i nie wypełnia. Moim zdaniem tu jest problem. Pewnie co jakiś czas zmienna $daneplik jest pusta lub równa 0 (liczba 0). Wówczas if zwróći false
tiraeth
Jeżeli nie znasz zasad to mówię: Proszę kod umieszczać w odpowiednim bbcode!!
Sajm_on
Sorki juz wiem jak mam formatowac teskt. Osteczna wersja skryptu jest w pierwszym poscie. Czekam na jakies pomysly! aarambo.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.