有没有办法防止 PHP GD 图像库内存不足?如果上传的图片太大,GD 往往会耗尽内存,终止脚本。我希望它抛出一个可捕获的异常或类似的东西,但可惜它没有。
现在我正在使用一个拼凑在一起的脚本,它首先发出一个ini_set('memory_limit', '128M')
,如果这有效,我通常都准备好了。取决于服务器配置,尽管这可能是不可能的,所以我依靠一种算法来尝试估计所需的内存量(考虑分辨率、颜色深度、通道和软糖因素),然后将其与memory_get_usage()
如果函数存在,则进行粗略估计。
到目前为止,整个事情都有效,但它远非优雅,并且在某些极端情况下会失败,我敢肯定。有没有更好的方法来做到这一点,即如果必须让GD优雅地失败,而不是让一切都停下来?