Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapchana pamięć , problem z wyczyszczeniem tablicy
wicek
post 13.02.2014, 11:03:59
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 1
Dołączył: 13.02.2014

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


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

Ten post edytował wicek 13.02.2014, 11:05:11
Go to the top of the page
+Quote Post
Pyton_000
post 13.02.2014, 19:36:57
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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


Ten post edytował Pyton_000 13.02.2014, 19:37:53
Go to the top of the page
+Quote Post
sajegib
post 13.02.2014, 22:17:01
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 59
Dołączył: 16.01.2013

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


Cytat
a może

Raczej nie.
Odpal skrypt w konsoli wink.gif

Ten post edytował sajegib 13.02.2014, 22:18:17
Go to the top of the page
+Quote Post
wicek
post 14.02.2014, 07:34:38
Post #4





Grupa: Zarejestrowani
Postów: 55
Pomógł: 1
Dołączył: 13.02.2014

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


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

Ten post edytował wicek 14.02.2014, 07:35:11
Go to the top of the page
+Quote Post
Pyton_000
post 14.02.2014, 20:14:17
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@sajegib a co ma do tego konsola ?
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 23:24