【问题标题】:Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 78 bytes)致命错误:允许的内存大小为 67108864 字节已用尽(尝试分配 78 字节)
【发布时间】:2015-03-06 16:32:16
【问题描述】:

我在 PHPExcel 中遇到了内存问题

这是错误信息:

致命错误:第 55 行 /home/***/public_html/system/PHPExcel/Classes/PHPExcel/CachedObjectStorage/Memory.php 中允许的内存大小为 67108864 字节已用尽(尝试分配 78 字节)

这是我的php.ini

magic_quotes_gpc = Off;
register_globals = Off;
default_charset = UTF-8;
memory_limit = 4096M;
max_execution_time = 36000;
upload_max_filesize = 4096M;
post_max_size = 4096M;
safe_mode = Off;
mysql.connect_timeout = 20;
session.use_only_cookies = On;
session.use_trans_sid = Off;
session.cookie_httponly = On;
session.gc_maxlifetime = 172800;
allow_url_fopen = on;
;display_errors = 1;
;error_reporting = E_ALL;

我是 PHP 新手。请帮助我,非常感谢。

【问题讨论】:

  • 您的 Excel 文件是否大于 4GB?
  • 显然您在 php.ini 中的内存限制设置没有生效,因为 PHP 说限制是 64meg(67,108,864 字节)。更改 .ini 文件后是否重新启动 PHP/webserver?您是否检查过是否存在覆盖 .ini 版本的 memory_limit 设置 ELSEWHERE?
  • 请阅读文档中关于cell caching的部分
  • @user:显然不是,因为你的错误说限制是 64meg。

标签: php phpexcel


【解决方案1】:

您可以设置更大的内存限制(atm 它是 ~64 MB,67.11 MB)

覆盖默认的 PHP 内存限制:

ini_set('memory_limit', '512M');

移除限制

ini_set('memory_limit', '-1'); 

【讨论】:

  • 请注意,如果您有内存泄漏,您应该先修复它。
  • 脚本:ini_get('memory_limit') => result = 4096M
  • 我转到 cpanel,我看到 memory_limit = -1
  • 好像是缓存问题。
猜你喜欢
  • 2013-07-22
  • 2018-01-29
  • 2017-02-18
  • 1970-01-01
  • 2011-11-14
  • 2013-02-04
  • 1970-01-01
  • 2013-02-24
  • 2011-09-27
相关资源
最近更新 更多