致命错误:PHPExcel允许的内存大小为33554432字节

时间:2014-02-12 12:51:43

标签: php phpexcel

我正在使用PHPExcel库来读写excel文件excel2007格式。这些不是大的excel文件,大约只有120个和20个列。当我在我的专用服务器上运行它的显示错误如下..

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 40 bytes) in /home/ramdas/public_html/partnumber/inc/PHPExcel/Style/Supervisor.php on line 126

这是我的代码..我正在使用内存缓存技术..

    include("inc/PHPExcel.php");
    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
    $cacheSettings = array( 'memoryCacheSize' => '512MB');
    PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);
    $objPHPExcel = new PHPExcel();

我已经检查了PHPExcel_Settings的返回值..它返回true ..

请帮我解决这个问题......我已经尝试了这里提供的所有答案......没有什么能帮我解决..

1 个答案:

答案 0 :(得分:2)

$cacheSettings = array( 'memoryCacheSize' => '512MB');

这告诉PHP使用内存高达512MB 之前它甚至会开始将单元格数据缓存到php:// temp

你没有512MB的内存,你只有32MB(33554432字节)

PHPExcel不会自动从以太创建内存,它受到可用物理内存的限制。

你需要使用比你的可用内存更小的memoryCacheSize值,可能是8MB,甚至更少

$cacheSettings = array( 'memoryCacheSize' => '8MB');