我使用 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/