2013-03-18 20 views
11

Po raz pierwszy użyłem biblioteki mpdf i wszystko działało dobrze. Napisałem skrypt, aby utworzyć plik pdf składający się z 274 wierszy. Po uruchomieniu skryptu otrzymuję błąd pamięci php. Próbowałem inny scenariusz, ale mam ten sam błąd pamięci. Pomóż mi rozwiązać ten błąd. Podałem poniżej inny scenariusz i jego wynik.php błąd limitu pamięci mpdf

php.ini = memory_limit = 256M

scenariusz = ini_set ('memory_limit', '25 M');

Result: 
memory_get_usage() = 12.75 mb 
memory_get_peak_usage() = 12.75 mb 
Fatal error: Allowed memory size of 26214400 bytes exhausted 
(tried to allocate 261904 bytes) 
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14268 

php.ini = memory_limit = 256M

scenariusz = ini_set ('memory_limit' '-1');

Result: 
memory_get_usage() = 12.75 mb 
memory_get_peak_usage() = 12.75 mb 
Fatal error: Out of memory (allocated 1898971136) 
(tried to allocate 261904 bytes) 
in C:\xampp\htdocs\XX\lib\pdf\mpdf\mpdf.php on line 14265 
+0

'ini_set ('memory_limit', -1); var_dump (ini_get ('memory_limit')); 'Potwierdź, że zmiany zostały ustawione. –

+0

@Mike B Wyprowadza to = ciąg (2) "-1" – sravis

+0

A więc coś innego ustawia ograniczenie pamięci z powrotem na 25. –

Odpowiedz

4

Zużycie pamięci w tabelach można zmniejszyć, korzystając z kilku opcji. official doc here

+0

Buddy, naprawdę potrzebuję twojej odpowiedzi, ale link, który wysłałeś, jest wyłączony. wklejając odpowiednie informacje? –

+1

Zaktualizowałem odpowiedź: – flm

+0

W szczególności wypróbuj '$ mpdf-> packTableData = true;' lub '$ mpdf-> packTableData = true;' (z linku, na wypadek gdyby został uszkodzony w przyszłości W przeciwnym razie przejdź do skryptu compress.php zawartego w mpdf. – Sablefoste

0

Znalazłem nie zsynchronizowane (</table >) tagi mogą powodować problemy z pamięcią (i szybkość); oczyszczenie kodu HTML przechodzącego przez mPDF rozwiązało go.

0

Czy próbowałeś zobaczyć wyjście phpinfo(), aby sprawdzić, czy zmienia się ustawiona wartość parametru memory_limit? spróbuj umieścić tę funkcję u góry pliku index.php i sprawdź, czy działa ona w trybie ini_set('memory_limit', '256M');.

Pozdrawiam!

Powiązane problemy