Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapisywanie w kilku plikach txt
Forum PHP.pl > Forum > PHP
komorks
witam tworze stronke w php i napotkalem na pewnien problem. Mianowicie nie mam pojecia jak zapisywac dane do wielu plików za pomoca mojego ponizszego skryptu dane zapisywane sa w 1 pliku osiaga on pozniej gigantuczne rozmiary a serwer ma mozliwosc max 1mb/plik. jak zapisywac dane w kilku plikach po 1 kb zeby bylo np 1000plikow po 1 kb a nie 1 po 1mb. Dziekuje za odpowiedź

  1. <?php
  2.  
  3.  
  4. if (file_exists('angielska.txt'))
  5.  
  6. $dane=file('angielska.txt');
  7. else $dane=array();
  8.  
  9. if ($plik=fopen('angielska.txt','w'))
  10. {
  11. flock($plik,LOCK_EX);
  12. fputs($plik,"<table border='1' align='top' cellspacing='0' cellpadding='0' bordercolor='yellow'>");
  13. fputs($plik,"<tr><td>LIGA ANGIELSKA<br>");
  14. fputs($plik,"<img src='../images/punkt.gif'>Nazwa:$_POST[nazwa]<br>");
  15. fputs($plik,"Autor: $_POST[autor]<br>");
  16. fputs($plik,"Opis: $_POST[opis]</td>");
  17. fputs($plik,"<td><img src='$_POST[obrazek]'> </td>");
  18. fputs($plik,"</tr>");
  19.  
  20. for ($i=0;$i<count($dane);$i++)
  21. fputs($plik,$dane[$i]."rn");
  22.  
  23. flock($plik,LOCK_UN);
  24. fclose($plik);
  25.  
  26. }
  27. ?>
Cysiaczek
Możesz np. przed wpisaniem danych do pliku sprawdzić jego rozmiar. Jeśli plik angielska.txt będzie większy niż rozmiar, który sobie zaplanowałeś, to kopiujesz jego zawartość pod inną nazwą (np. angielska1.txt, angielska2.txt itd.), a nastepnie usuwasz całą jego zawartość i dopisujesz do pustego już pliku.
Implementacje pomysłu pozostawiam już Tobie ; )

Pozdrawiam
komorks
czyli musze skorzystac z funkcji fwrite()? funkcja fputs() nie ma chyba mozliwosci okreslenia rozmiaru... smile.gif
Cysiaczek
filesize()

  1. <?php
  2. $size=filesize('plik.txt');
  3. $limit=1024; //1 KB
  4. if ($size >= $limit){
  5. //skopiuj pliki, skasuj zawartość głównego pliku itd.
  6. }
  7. ?>


Manual, manual, manual. guitar.gif

Pozdrawiam
komorks
juz kapuje, ale jak zrobic by nazwa pliku byla numerowania od 1 w góre?
Cysiaczek
Są różne wyjścia

1. Analizować nazwę pliku i wyciąć z niej aktualny numer. Potem powiększyć o jeden i już
2. Można zliczyć ilość plików w katalogu i na tej podstawie generować następne.
3. Stworzyć osobny plik, i trzymać tam liczbę, którą asię powiększa, gdy plik osiąga żądany rozmiar (taki zwykły licznik)

Można tez zamiast numerowania doklejać do nazwy pliku datę, czas lub losową liczbę itp.

Pozdrawiam.


P.S
Mam nadzieję, że nie liczysz na gotowce, bo tych brak tongue.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.