首页 > 系统相关 >解决PHPExcel超时、内存超出的问题

解决PHPExcel超时、内存超出的问题

时间:2024-04-29 10:23:28浏览次数:12  
标签:fp php 句柄 header 内存 output PHPExcel 超时

一、PHPExcel 导出数据量大的时候容易超时、内存使用超出限制。 以前都是将PHP内存使用限制不断增大,超时时间不断增大来应对,但即使如此,web端导出时,浏览器依然会超时。 考虑了Jquery+Ajax+table导出,数据量依然会使浏览器卡死,经尝试可以用以下方法,

// 打开PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); // 将数据通过fputcsv写到文件句柄 

 header('Content-Type: application/vnd.ms-excel'); 
 header('Content-Disposition: attachment;filename="user.csv"'); 
 header('Cache-Control: max-age=0'); 
// 打开PHP文件句柄,php://output 表示直接输出到浏览器 
 
$fp = fopen('php://output', 'a');
 
// 将数据通过fputcsv写到文件句柄 
 
 fputcsv($fp, $header); 
 foreach($query->batch(1000) as $models){
      $arr=$models->toArray();
      foreach($arr as $row){
           fputcsv($fp, $row);     
      }
     ob_flush(); 
     flush();

 

标签:fp,php,句柄,header,内存,output,PHPExcel,超时
From: https://www.cnblogs.com/zh718594493/p/18165095

相关文章

  • python使用迭代生成器yield减少内存占用的方法
    在python编码中for循环处理任务时,会将所有的待遍历参量加载到内存中。其实这本没有必要,因为这些参量很有可能是一次性使用的,甚至很多场景下这些参量是不需要同时存储在内存中的,这时候就会用到本文所介绍的迭代生成器yield。1.基本使用首先我们用一个例子来演示一下迭代生成器yi......
  • LLM优化:开源星火13B显卡及内存占用优化
    1.背景本qiang~这两天接了一个任务,部署几个开源的模型,并且将本地经过全量微调的模型与开源模型做一个效果对比。部署的开源模型包括:星火13B,Baichuan2-13B,ChatGLM6B等其他两个模型基于transformers架构封装,因此推理服务启动还是十分丝滑,但星火13B是基于Megatron-DeepSpeed框......
  • cocos2d-x 内存泄漏2
     cocos2d\cocos\base/CCScriptSupport.cpp{ScriptEngineManager*ScriptEngineManager::getInstance(){   if(!s_pSharedScriptEngineManager)   {      staticScriptEngineManagerobj;       //s_pSharedScriptEngineManager=new(std::nothrow......
  • openGauss MOT本地内存和全局内存
    MOT本地内存和全局内存SILO管理本地内存和全局内存,如所示。全局内存是所有核共享的长期内存,主要用于存储所有的表数据和索引。本地内存是短期内存,主要由会话使用,用于处理事务及将数据更改存储到事务内存中,直到提交阶段。当事务需要更改时,SILO将该事务的所有数据从全局内存复......
  • 学习笔记-Java内存区域
    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外的人想进去,墙里面的人想出来。运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间。有的区域随着虚拟机进程启动一直......
  • JVM 内存溢出、泄漏与引用
    1、引用概述在栈上的reference类型存储的数据代表某块内存地址,称reference为某内存、某对象的引用。实际上引用分为很多种,从强到弱分为:强引用>软引用>弱引用>虚引用。平常我们使用的引用实际上是强引用,各种引用有自己的特点,强引用就是Java中普通的对象,而软引用、弱引用......
  • 二进制文件内存映射
    点击查看代码#对二进制文件做内存映射#使用mmap模块对文件进行内存有映射操作importmmapimportos.pathdefmemory_map(filename,access=mmap.ACCESS_WRITE):""":paramfilename::paramaccess:mmap.ACCESS_WRITE:读写mmap.A......
  • openharmony 多线程的方式有哪些?两个worker线程数据如何通讯、内存如何共享、与Java多
    OpenHarmony操作系统支持多种多线程并发处理策略,以提升应用的响应速度与帧率,以及防止耗时任务对主线程的干扰。以下是OpenHarmony中的多线程方式,以及Worker线程间的数据通讯和内存共享方法,还有它们与Java多线程的区别:OpenHarmony多线程方式Worker线程:OpenHarmony中的Worker是......
  • vue3打包js内存溢出
     第一步:npminstall-gincrease-memory-limit第二步:npminstallincrease-memory-limit—save-dev第三步:package.json文件中修改   "build:win32":"cross-envLIMIT=2048increase-memory-limitBUILD_TARGET=win32node.electron-vue/build.js",//添加这个......
  • Bochs内存中的Guest和Host
      Bochs是通过配置文件(.bxrc文件)的方式来设置模拟计算机的硬件参数,其中MEMORY部分,分别需要设置Guest和Host的大小来决定虚拟计算机的内存大小,有什么区别呢?通过下面的Bochs构架图可以弄清楚:    要点说明:  1、Bochs在现实环境中属于应用程序,Host表示应用程序用来模拟内......