Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapchana pamięć , problem z wyczyszczeniem tablicy
Forum PHP.pl > Forum > PHP
wicek
Witam wszystkich ,

mam 100 plików txt , każdy 86k+ wierszy . Napisałem skrypt który otwiera plik obrabia go jak potrzebuję i zapisuje do jednego pliku wynik.las.
Więc dopisałem sobie aby odczytywał wszytskie pliki z katalogu pakował je do tablicy i w pętli foreach je obrabiał.
No i tu zonk ponieważ wyskakuje mi błąd pamięci , tablica nie zeruje się po jednorazwym przejsciu pętli tylko dodaje następny plik, lub jak otwieram plik file() to go nie zamyka i w drugim podejściu czyta oba pliki...
Szukam po necie rozwiązania jak ktoś pomoże będę dźwięczny smile.gif
Dodam iż próbowałem unset() na końcu i nic...

  1. <?
  2. $dirpath = "L:/WebServ/httpd/test/pliki/";
  3. if ($handle = opendir('L:/WebServ/httpd/test/pliki')) {
  4. while (false !== ($entry = readdir($handle)))
  5. if($entry != '.' && $entry != '..'){
  6. $tablica[] = $dirpath.$entry;
  7. }
  8. closedir($handle);
  9. }
  10. sort($tablica);
  11. foreach($tablica as $a){
  12. $f=file($a);
  13. array_splice($f,0,63);
  14. foreach($f as $line){
  15. $newf.=substr($line,1);
  16. }
  17. $f = str_replace("\r\n","@",$newf);
  18. $f2 = preg_replace('/\s+/',' ', $f);
  19. $f3 = str_replace("@","\r\n",$f2);
  20. $f4 = str_replace(" ",",",$f3);
  21. $f5 = array($f4);
  22. foreach($f5 as $row){
  23. $co = array('/(\d{4})(\d{2})(\d{2}).(\d{2})(\d{2})(\d{2})/');
  24. $na = array('\1-\2-\3 \4:\5:\6');
  25. $f6 = preg_replace($co, $na,$row);
  26. }
  27. $x = fopen("wyniki.las","a");
  28. fputs($x, $f6);
  29. fclose($x);
  30. }
  31.  
  32. ?>



Z góry dziękuję i pozdrawiam

Wicek
Pyton_000
a może
  1. ... Do more stuff...
  2. file_put_contents(file, data, FILE_APPEND);
sajegib
Cytat
a może

Raczej nie.
Odpal skrypt w konsoli wink.gif
wicek
Problem rozwiązany smile.gif Wnerwiłem się i na "hama" smile.gif po foreach w 14 linijcie dałem unset() wszystkie zmienne okazało się że $row i $f6 się nie kasowały.
Po zrobieniu 9 unsetów poszło.

POzdrawiam
Wicek
Pyton_000
@sajegib a co ma do tego konsola ?
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.