php excel 超内存,phpexcel解决内存占用的3个方式

phpexcel内存占用的问题也不是一天两天的事情,经过反覆的测试、询问得出这三个最有效的内存优化方式,在php查询内存使用状况请透过memory_get_usage()这个函数。

A.修改php对于内存的限制

@ini_set('memory_limit', '256M') // 默认是128M

可以变动php初始设置,不过不会是最好的方式,然而不得不承认这招简单有效,缺点是需要根据电脑效能有所调整,因此这招还是放最后在考虑吧。

B.善于使用php函数unset()

不管是汇入或者汇出若某个变数资料量过于庞大,变数使用完毕务必unset(),否则内存占用比例太高,会让phpexcel执行上更为吃力,通常unset()一个资料阵列可以释放一半以上的占用内存。

C. phpexcel进行汇入资料的密技

使用$objPHPExcel->disconnectWorksheets()这个函数,使用时机在于phpexcel开启档案之后,即可执行,执行后占用内存可释放一半或更多。

总而言之不管汇入、汇出都要记得unset()巨量资料变数,若硬体允许就使用memory_limit进行内存上限扩充,汇入资料可用disconnectWorksheets()进行sheet占用内存的状况。