有没有办法防止PHP GD图像库耗尽内存?如果上传的图像太大,GD往往会耗尽内存,从而终止脚本.我希望它可以抛出一个可捕获的异常或其他东西,但唉它没有.
现在我正在使用一个拼凑在一起的脚本,首先发布一个ini_set('memory_limit', '128M'),如果有效,我通常都会设置.虽然可能无法实现服务器配置,但我还是试着估算所需的内存量(将分辨率,颜色深度,通道和软糖因素考虑在内),然后将其与memory_get_usage()如果函数存在,否则进行粗略估计.
到目前为止,整个过程是有效的,但它远非优雅,在某些边缘情况下会失败,我敢肯定.有没有更好的方法来做到这一点,即GD必须优雅地失败,而不是将一切都停止?
多买点内存吧!:-P
但说真的,内存不足是不可能处理的,因为你采取的任何操作都需要更多的内存。
最好的办法是根据当前内存设置限制上传图像的大小。