我從5.3到7更新PHP應用目前我靶向5.6 開始。
有一部分應用程序將簽名轉換爲圖像。當該文件運行時,我得到這個錯誤。
錯誤
致命錯誤:用盡 33554432個字節允許存儲器大小(試圖分配20480個字節)簽名到image.php上 線
這是它在錯誤中引用的行。
代碼
$img = imagecreatetruecolor($options['imageSize'][0] * $options['drawMultiplier'], $options['imageSize'][1] * $options['drawMultiplier']);
問題
任何人都可以在這裏澄清這個問題?
我在想這與服務器配置有關,而不是PHP版本的問題。任何幫助,將不勝感激。
array(5) {
["imageSize"]=>
array(2) {
[0]=>
int(373)
[1]=>
int(95)
}
["bgColour"]=>
array(3) {
[0]=>
int(255)
[1]=>
int(255)
[2]=>
int(255)
}
["penWidth"]=>
int(2)
["penColour"]=>
array(3) {
[0]=>
int(0)
[1]=>
int(0)
[2]=>
int(0)
}
["drawMultiplier"]=>
int(12)
}
<br />
<b>Fatal error</b>: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes)
以我的經驗,新的PHP版本傾向於使用* *較少的內存,而不是更多。你是明確地設置'memory_limit'還是依靠系統默認設置? –
32Mb限制非常小。你的5.3服務器很可能有更高的設置。 –
通常情況下「允許的內存大小[BIG number] exhausted(試圖分配[SMALL number])」通常意味着您在某個地方有無限循環,或者在沒有釋放內存的情況下執行太多循環。你是否記得在完成圖像資源後調用'imagedestroy'來釋放內存? –