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、設置完成即可達到降低內存消耗的目的。