从停止脚本中阻止imagecreatefromjpeg
我在共享主机上使用imagecreatefromjpeg,因此如果图像太大,imagecreatefromjpeg会给我一个“超出内存错误”并终止脚本。从停止脚本中阻止imagecreatefromjpeg
是否有办法赶出内存错误,并简单地让imagecreatefromjpeg失败(返回false)而不是终止脚本?
看到这个线程:
A fail-safe way to prevent GD image library from running out of memory? (PHP)
答案很简单,它不容易有把握的任何程度
并添加@函数之前做任何帮助吗?
例如:
[email protected] .......
又见如何抑制错误在PHP中:http://us3.php.net/manual/en/language.operators.errorcontrol.php
删除错误消息,但PHP脚本stil死亡。 – 2009-09-07 17:02:05
简单的if语句里面附上功能,指示它当函数失败重定向。
即if(!imagecreatefromjpeg){//在此处重定向命令};
从停止脚本阻止imagecreatefromjpeg,你应该检查设置的内存限制。您可以按如下方式确定所需的内存: 需要的内存=图像像素* 3个字节
例如如果您有1000 x 2000
分辨率的图像,然后需要的内存将是
memory required= ((1000 * 2000) * 3)=600000 bytes =5.72205MB
如果您所设定的内存限制为5242880个字节(5MB),您可以拨打电话到imagecreatefromjpeg()
if($memory_required < 5242880)
{
imagecreatefromjpeg();
// continue with your image related operations
}
else
{
//handle error message, perhaps show such message as "provide image is too big"
}
之前执行以下检查
你可以使用PHP可用的功能在PHP中确定图像分辨率(高度,宽度)
+1检查尺寸第一始终是一个很好的预防措施 – bobince 2009-09-07 21:51:36
他也可以查看文件的大小本身。 – dusoft 2009-09-07 22:50:36