PHPExcel fatal error : Allowed memory size

标签 php memory phpexcel

我使用 PHPexcel 打开 .xlsx 文件(在 ovh 相互化服务器上​​)并遇到了我解决的问题。

保存修改后的文件时遇到新问题:

“ fatal error :第 870 行/home/observatvu/www/libraries/phpexcel/library/PHPExcel/Cell.php 中允许的内存大小 536870912 字节已耗尽(尝试分配 49 字节)”

我在互联网上阅读了很多问题和答案,并尝试了一些解决方案,例如:

  • .htaccess 中的内存限制 => 服务器出现问题,无法正常工作
  • ini_set('memory_limit','512M') => 我收到上面的消息...使用其他 ini_set 值时出现其他大小的内存错误,但没有保存文件。
  • 我无法修改 php.ini

我尝试在保存文件时编写 setPreCalculateFormulas(false) 但总是出现同样的问题。

请问有人可以帮助我找到可行的解决方案吗?

谢谢

最佳答案

如果你尝试过

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '1024MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); 

那就不行了。

您的 PHP 限制为 536,870,912 (512MB)

线路

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

告诉 PHPExcel 在切换到使用 php://temp 进行缓存之前使用 1024MB 的 PHP 内存...这就是参数名称的 memory 元素memoryCacheSize 表示。

使用比 PHP 内存限制量更低的 memoryCacheSize 值

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '256MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); 

关于PHPExcel fatal error : Allowed memory size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158286/

相关文章:

php - 显示/隐藏基于单选按钮的 WooCommerce 运费

php - 使用OAuth验证应用程序以访问融合表

c++ - 当被系统 DLL 调用时,Hooked VirtualAlloc 返回 nullptr

PHPExcel 检查工作表是否存在

PHP Excel 导入

php - 打印工作和回显在PHP中不工作

header 处 Javascript 中的 PHP 循环 - 此代码是否有效?

java - 如何发现哪个 Jar 或包创建了对象

python - 如何在不耗尽内存的情况下读取 tsv 文件并将它们存储为 hdf5?

php - 修改代码以将 HTML 表格导出到 Excel