![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 23:51 |