PHP致命错误:允许的内存大小耗尽。怎么修?

时间:2011-05-26 13:57:49

标签: php sql

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to
allocate 24 bytes)
in /home/fevsdiet/public_html/xxxxxxx.co.uk/booking/includes/functions.php
on line 481

这是什么意思,如何修复它?

这是错误的代码:

   $availabilityArr = array();              
    #TODO - check if "to" is < "from" = means that "to" is +1 day.
    $st = date("Y-m-d H:i", strtotime($date." +".$tt[2]." minutes"));
    $et = date("Y-m-d H:i", strtotime($date." +".$tt[3]." minutes"));
    $a = $st;
    $n = 0; //layout counter
    $b = date("Y-m-d H:i", strtotime($a." +".$int." minutes")); //default value for B is start time.
    for( $a = $st ; $b <= $et ; $b = 
                       date("Y-m-d H:i", strtotime($a." +".$int." minutes")))
    {
        $availabilityArr[date("Y-m-d", strtotime($a))][] = date("H:i", strtotime($a));
        $a = $b;
        $n++;
    }

6 个答案:

答案 0 :(得分:2)

这是PHP错误。

在.htaccess中你可以设置

php_value memory_limit 90M

在您的php文件之上,您可以设置

ini_set("memory_limit", "90M");

答案 1 :(得分:1)

说实话听起来像PHP错误。

看到这个: http://www.bluehostforum.com/showthread.php?14500-Allowed-memory-size-of-33554432-bytes-exhausted

您需要在PHP中编辑memory_limit设置。

答案 2 :(得分:1)

答案 3 :(得分:1)

基本上,这意味着PHP没有任何允许的内存。这可以使用memory_limit中的php.ini条款进行调整。

如果您使用的是共享主机,则可能无法编辑php.ini。您仍然可以尝试使用.htaccess文件:

  1. 在您的网站目录的根目录上创建名为.htaccess的文件(通常为/www/web
  2. 使用php_value子句:

    php_value memory_limit 128M #for example
    
  3. 这是由一些代码尝试使用太多或太大的变量引起的。通常它是一个无限循环,或者从数据库中将很多数据提取到一个数组中,

答案 4 :(得分:0)

检查php.ini中的memory_limit设置。

答案 5 :(得分:0)

您的PHP环境目前的内存限制为32MB,错误消息告诉您需要更多内存才能继续。

内存限制由memory_limit配置选项设置(请参阅:http://uk3.php.net/manual/en/ini.core.php#ini.memory-limit)。您需要重构代码以使用更少的内存,或者,如果您真的需要那么多内存,请更改memory_limit选项。

要为服务器上的所有php脚本全局执行此操作,您可以编辑php.ini(这取决于您的操作系统以及安装PHP的位置)。

要为此脚本设置临时更高的内存限制,您可以执行以下操作:

$old_limit = ini_set( "memory_limit", "128M" );

(... the code that needs the extra memory ...)

ini_set( "memory_limit", $old_limit );

要减少内存使用量,请尝试在任何不再需要的变量上使用unset()作为开头。