phpexcel導入大數據記憶體溢出的解決方法有哪些

王林
發布: 2023-04-07 21:12:01
原創
4350 人瀏覽過

phpexcel導入大數據記憶體溢出的解決方法有哪些

PHPExcel版本:1.7.6

#在不進行特殊設定的情況下,phpExcel將讀取的單元格資訊保存在內存中,我們可以透過PHPExcel_Settings::setCacheStorageMethod()來設定不同的快取方式,已達到降低記憶體消耗的目的!

相關影片教學推薦:php入門教學

解決方案:

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;
登入後複製
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache;  
$cacheSettings = array( 'memcacheServer'  => 'localhost',  
     'memcachePort'    => 11211,  
     'cacheTime'       => 600  
);  
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
登入後複製

注意是加在

new PHPExcel()前面,如下:

require_once APPPATH .'third_party/PHPExcel/PHPExcel.php';
        
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array('memoryCacheSize'=>'16MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
$objPHPExcel = new PHPExcel();
登入後複製
推薦相關文章教學:

php教學#

以上是phpexcel導入大數據記憶體溢出的解決方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板