Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Out of memory przy otwieraniu pliku xlsx
grzecho83
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 31.10.2011

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


Witam, używam biblioteki SimpleXLSX.php do odczytu plików *.xlsx, przy próbie otwarcia pliku pojawia się błąd:

Fatal error: Out of memory (allocated 83886080) (tried to allocate 29970075 bytes) in /***/SimpleXLSX.php on line 535

Na domowym serwerze XAMP działa ok, problem jest po wgraniu strony na serwer zewnętrzny. W pomocy technicznej dowiedziałem się że mają limit pamięci dla php 128MB i nie można go zwiększyć.
Plik *.xlsx ma rozmiar na dysku 6,2MB, więc dlaczego rozmiar jest przekroczony? Kod PHP otwierający plik też nie jest jakoś mocno rozbudowany.
Pytanie, czy można jakoś zoptymalizować tą bibliotekę?
LInk do strony z biblioteką simplexlsx
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Wielkość pliku na dysku nie oznacza, że właśnie tyle RAMu zużyje aplikacja go otwierająca czy przetwarzająca. Jeśli go wczytuje całego do pamięci, to oznacza, że wielkość pliku w MB oznacza prędzej minimalne zużycie RAMu.
Albo gdzieś jest błąd w klasie powodujący wyciek pamięci dla tego pliku, albo to normalne, że działania na pliku pochłaniają właśnie takie ilości RAMu.

Możesz zmierzyć na localhost ile RAMu jest zaalokowane w szczytowym momencie. I jeśli >128 MB, to nic tutaj nie pomoże: https://www.php.net/manual/en/function.memo...-peak-usage.php

Masz możliwość przerobienia tego xlsx na csv? Jeśli tak, odejdzie masa problemów i to będzie najlepsze rozwiązanie.

A jeśli nie, to możesz też spróbować innej biblioteki, np.: https://github.com/PHPOffice/PhpSpreadsheet/
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 23:51