我遇到了常见的“致命错误:内存不足(已分配30408704)(尝试分配24字节)…”PHP致命错误。通过Apache提供的页面没有表现出这种行为。
我尝试了以下方法:
我倾向于确保我的脚本具有内存效率,但目前我需要通过Simple HTML DOM解析大量HTML,并且在解析器中遇到了内存不足问题。为了减少脚本的内存占用,我尝试使用DOMDocument。但这并没有帮助。实际上,内存不足错误现在在脚本的其他地方触发。
我的问题是:有人经历过这种或类似的问题吗?您有任何建议吗?
谢谢。
我尝试了以下方法:
- 将php.ini中的memory_limit增加到更大的值。
- 通过调用
ini_set('memory_limit', -1)
、ini_set('memory_limit', '-1')
、ini_set('memory_limit', 100000000)
、ini_set('memory_limit', '128M')
等方式,在脚本本身中增加memory_limit。 - 使用
unset()
删除不需要的数组和对象,以鼓励垃圾回收器释放内存。 - 联系网站主机。他们通常非常有能力和知识,但是也无法帮助我解决这个问题。
- 我尝试使用
-c
命令行标志显式包含php.ini文件,手动选择具有不同值的特定php.ini文件。 - 我尝试在php.ini中使用原始字节数和值(如64M、128M等)设置memory_limit。
- 托管提供商可以使用root身份运行脚本而没有任何问题,但在使用我的非root用户运行时遇到了相同的问题。也许涉及某种权限问题?
memory_limit
的更改。我倾向于确保我的脚本具有内存效率,但目前我需要通过Simple HTML DOM解析大量HTML,并且在解析器中遇到了内存不足问题。为了减少脚本的内存占用,我尝试使用DOMDocument。但这并没有帮助。实际上,内存不足错误现在在脚本的其他地方触发。
我的问题是:有人经历过这种或类似的问题吗?您有任何建议吗?
谢谢。
function returnSomething( $what ) { return returnSomething( $what ); } returnSomething( true );
运行后会输出 'Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 261900 bytes) in ...' - Dereleased