为什么ini_set('memory_limit')无效?

4

我正在开发一个文件缩放功能,当使用非常高分辨率的图像时,会出现以下致命错误:

PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to
 allocate 8884 bytes) in /path/resizer.php on line 35

(resizer.php是一个调整大小的类) 然后,当我使用ini_set('memory_limit', '64MB')时;

..在整个 if (isset($_FILES....)) 块的前面......我会得到以下致命错误:

 PHP Fatal error:  Allowed memory size of 262144 bytes exhausted (tried to 
allocate 8884 bytes) in path/resizerenter code here.php on line 35

请注意,虽然我请求增加内存,但分配的内存已经 减少。如果您知道问题出在哪里,请让我知道。非常感谢。

你是否在共享托管环境中? - Nahydrin
1
可能相关:https://dev59.com/4UnSa4cB1Zd3GeqPMDuP - Pierre-Olivier
1
如果您使用的是未经个人设置的任何环境,则可能没有权限覆盖php.ini。此外,您可能不知道系统中有多少内存可供您进行更改。 - user1070017
嗨,我现在在本地主机上。 - alexx0186
嗨,Pierre,感谢你的链接。问候 - alexx0186
1个回答

3

请检查php.ini设置: memory_limit

也许已经超过了64M。如果需要的话,您可以

   ini_set('memory_limit', '128M'); or 256...

处理大图片可能会使用大量内存!


嗨,感谢您的回复。我意识到它设置为32MB!我有一个问题,我们谈论的是RAM吗?非常感谢。 - alexx0186
是的,这就是RAM。ini_set('memory_limit', '128MB')告诉php引擎单次执行最多可以使用128MB的RAM。这保证了脚本不会使用过多的内存导致系统性能问题。 - ab_dev86

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接