Witam,
Mam skrypt który generuje mi sporą ilość miniatur około 2000. i w pewnym momencie zatrzymuje się i otrzymuje komunikat: "ABORT: PHP cpu time limit exceeded in imagecopyresampled() called at ..." Czy można to jakoś obejść? Czy funkcja kopiowania i zmiany nazwy obrazka działa szybciej?
set_time_limit
.
A kopiowanie i zmiana nazwy będzie szybsza, ale ma tyle wspólnego z generowaniem miniatur, co nic.
Dałem set_time_limit(300) na początku skryptu ale błąd nadal występuje i różnicy nie widać.
W sumie error nie brzmi jak error wyrzucony przez samo php, tylko albo Twój skrypt (wątpię), albo przez limit nałożony przez hosting. Jeżeli set_time_limit nie pomogło (nie podałeś jak szybko to wyskakiwało, teraz zmieniłeś na 5 minut) to podziel swoje generowanie miniatur na etapy (nie wiem co piszesz i jak ma działać, więc konkretów nie będzie) i wywołuj skrypt x razy.
Powiedz mi jeszcze tylko co będzie szybsze przy kopiowaniu plików jpg czy funkcja copy() czy np. fopen() i fwrite() ?
Sprobuj ustalic limit z poziomu .htaccess, niemniej mozliwe, ze hosting to blokuje. Zobacz w phpinfo() czy zmienila sie wartosc po ustawieniu jej wczesniej. No i 300ms to dosc malo dla 2 tys miniatur byc moze.
Do kopiowania uzyj funkcji copy
Coldpeer napisał(a):
Sprobuj ustalic limit z poziomu .htaccess, niemniej mozliwe, ze hosting to blokuje. Zobacz w phpinfo() czy zmienila sie wartosc po ustawieniu jej wczesniej. No i 300ms to dosc malo dla 2 tys miniatur byc moze.
Do kopiowania uzyj funkcji
copy
To jest 300 sekund... http://php.net/manual/en/function.set-time-limit.php
Lepiej takie długie zadania zostawić jako robotę dla crona.
ipko napisał(a):
Powiedz mi jeszcze tylko co będzie szybsze przy kopiowaniu plików jpg czy funkcja copy() czy np. fopen() i fwrite() ?
....
copy