douya2982 2012-04-02 01:07
浏览 161
已采纳

在PHP中出现内存耗尽错误后增加或清除内存

We currently have an error catching script for all our PHP sites. This script uses a combination of set_error_handler & register_shutdown_function to catch all errors that occur including Memory exhaustion errors then sends us an email so that we can respond and fix the error.

Unfortunately in case of memory exhaustion errors the script has no more memory and can't complete sending the email. I've tried updating the memory limit in the error handler function so the script can complete the error but this doesn't seem to work. Is there a way to force PHP to dump it's memory so that there is enough to send the error email? Or perhaps to detect and unset the largest memory items?

EDIT: I should clarify that I'm using PHPMailer to send an email. I'm looking into using just mail in the case of a memory exhaustion error.

  • 写回答

2条回答 默认 最新

  • duanlun4411 2012-04-03 03:00
    关注

    Looks like if I check for the exhaustion error and just use mail(), and don't create any variables, at the very top of the error_handler then PHP will send an email with no issue.

    I also have to be sure to preset anything that I wish to include in the email with the exception of anything passed to the error handler.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部