Hello Jan,
"Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 13274305 bytes)..."
Da gab es einen etwas längeren Thread http://forum.de.selfhtml.org/archiv/2007/12/t163004/#m1061781
Der hat dann in Folge zu dieser Funktion geführt, die gewiss noch nicht wirklich sicher ist.
$_imageinfo ist das Ergebnis der Funktion getimagesize()
Die Konstante MEMORY_LEFT sollte nicht unter 100000 liegen. Sie kennzeichnet den Speicher, der noch für weitere Operationen übrig bleiben muss.
function image_check_memory($_imageinfo, $memleft = MEMORY_LEFT) ## X, Y, bits, channels
{
## fehlende Angaben durch Raten ergänzen
if (!isset($_imageinfo['bits'])) $_imageinfo['bits'] = 8;
if (!isset($_imageinfo['channels']) and $_imageinfo['bits'] == 24) $_imageinfo['channels'] = 1;
if (!isset($_imageinfo['channels'])) $_imageinfo['channels'] = 3;
$memoryNeeded = round(($_imageinfo[0] * $_imageinfo[1] * $_imageinfo['bits'] * $_imageinfo['channels'] / 8 + 65536) * 1.65);
$memoryLimit = intval(ini_get('memory_limit')) * 1048576;
if ((memory_get_usage() + $memoryNeeded) + $memleft > $memoryLimit)
{
error_log('IMAGE_MEMORY usage: '.memory_get_usage().", needed: $memoryNeeded, limit: $memoryLimit\n", 3, '/var/log/web04/php_error_log');
return false;
}
return true;
}
Die Funktion verhindert (meistens) das Überschreiten des Speicherbedarfs durch Bilderoperationen.
Die im thread mit Engin und mir genannten Links auf meinen Server sind zur Zeit leider außer Betrieb, aber vielleicht bekomme ich es an diesem Wochenende geregelt, dass sie wieder "funxen" ;-)
Liebe Grüße
Tom vom Berg
Nur selber lernen macht schlau