phpexcel缓存
⑴ 使用phpExcel读取大文件(20M左右)时,报内存不足。
这个报错不是PHPExcel报的错,而是php本身报的,原因大概就是因为你读取的文件超过了php单次请求运算占有的内存值的最大值。所以光设置PHPExcel是不行的
解决办法有三个:
1,修改 php.ini 中 memory_limit的值,重启apache服务
2,在你读取文件的页面头部加入 ini_set(”memory_limit”,”100M”); (-1为不限)
3,修改.htaccess 文档,在文档中加上一句:php_value memory_limit 16M(或更大)
⑵ phpExcel 输出Excel 内存溢出
phpExcel 输出Excel 内存溢出可以通过代码来设置不同的缓存方式,已达到降低内存消耗的目的。
工具:office Excel
步骤:
1、将单元格数据序列化后保存在内存中。
代码如下:
PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
2、将单元格序列化后再进行Gzip压缩,然后保存在内存中。
代码如下:
PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
3、缓存在临时的磁盘文件中,速度可能会慢一些。需要耐心等待一会儿。
代码如下:
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
4、保存在php://temp。
代码如下:
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
5、保存在memcache中。
代码如下:
PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
6、设置完成即可达到降低内存消耗的目的。