Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Allowed memory size XXX bytes exhausted (dla pliku 4.5M i memory_limit 32M)
Forum PHP.pl > Forum > PHP
shreeve
Witam serdecznie,
natrafiłem na takowy problem sciana.gif i nie wiem z której strony ugryźć. Od razu zaznaczam, że moja ingerencja w ustawienia serwera jest znacznie ograniczona, więc wszelkie ustawienia przez php.ini, ini_set() i pliki .htaccess nie wchodzi w grę. Wg ini_get('memory_limit') na skrypt jest 32M, phpinfo() także wyrzucił taką wartość.
Otrzymuję niestety błąd:
  1. Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 72 bytes) in /home/.../public_html/admin/.../Prices.php on line 20

Sytuacja ma miejsce, gdy pobieram ze zdalnego serwera (z WebServices) plik XML o rozmiarze ok 4.5M z użyciem cURL (allow_url_fopen = Off). Bez problemu zapisuje się na dysku, jednak nie mam gwarancji, czy zawsze ponieważ jak by nie patrzeć, tutaj też operuje na tym strumieniu XML - pobiera z tego WebServices i zapisuje do pliku XML, następnie tworzę obiekt i wywołuję metodę, która przetwarza ten 4.5M plik XML.
Długość linii (najdłuższa jaką znalazłem, to 97 znaków).
Końce linii ustawione na unixowe - \n
Jakim cudem może się wysypywać przy tak małym pliku?
Zyx
Ładujesz 4,5-megabajtowy plik XML do pamięci celem jego przetwarzania i dziwisz się, że jej brakuje? 4,5 MB to może źródła jego liczą, a po rozłożeniu na struktury danych i obiekty na pewno wyjdzie tego dużo więcej.
shreeve
No i rzeczywiście kurde tak jest, nie zdążyłem wyedytować przed Twoją wypowiedzią. Czekają mnie teraz modyfikacje pliku 4.5M -> 5 * ~1M.
Dziękuję Specjalisto ds. głupich i beznadziejnych smile.gif
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.