Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapisywanie w kilku plikach txt
komorks
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.12.2006

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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
Go to the top of the page
+Quote Post
komorks
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.12.2006

Ostrzeżenie: (0%)
-----


czyli musze skorzystac z funkcji fwrite()? funkcja fputs() nie ma chyba mozliwosci okreslenia rozmiaru... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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. (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)

Pozdrawiam

Ten post edytował Cysiaczek 7.12.2006, 17:50:27
Go to the top of the page
+Quote Post
komorks
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.12.2006

Ostrzeżenie: (0%)
-----


juz kapuje, ale jak zrobic by nazwa pliku byla numerowania od 1 w góre?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 01:08