背景
我正在将PHP应用程序从5.3更新到7.目前我的目标是5.6 首先。
应用程序的一部分将签名转换为图像。当该文件运行时,我收到此错误。
错误
致命错误:允许的内存大小为33554432字节 (尝试分配20480字节)在 signature-to-image.php 上 第 43
行
这是它在错误中引用的行。
代码
$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)
答案 0 :(得分:2)
您的php
脚本似乎需要比 php.ini memory_limit
设置中指定的内存更多的内存。
您有2个选项:
1 - 将 php.ini memory_limit
设置编辑为更高的值,然后重新启动apache
。
2 - 将以下内容添加到您的脚本中:
ini_set('memory_limit', '128M') # try several values until you find the appropriate one, no more no less.