douya2982 2012-04-02 09: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 11: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条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。