【问题标题】:PHP export to CSV dies after 10000 records10000 条记录后,PHP 导出到 CSV 失败
【发布时间】:2011-04-04 06:39:41
【问题描述】:

我想将我的结果集(大约 26000 条记录)导出到 csv 中。

超过 10000 范围时它不起作用。

即使我在 php.ini 中将 max_execution_time 更改为 60。

我的代码如下所示:

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print "$header\n$output";

谁能告诉我哪里出错了?

【问题讨论】:

  • 可能是它的内存限制,查看错误日志,尝试设置ini看看是否是ini_set('memory_limit','1024M');的问题set_time_limit(0);
  • 它的工作时间可能超过 60 秒?你能出示你的出口代码吗?
  • @Haim Evgi:1024M 不是一个解决方案,它会在每个请求上消耗 1Gb 内存......解决方案是使用范围限制查询数据库......
  • 我同意你的观点,我的意思是它只是检查这是否是问题
  • 文件大吗?您是否尝试过分块文件? stackoverflow.com/questions/5595485/php-file-download

标签: php csv export


【解决方案1】:

为什么要将所有内容都存储到 $output 中?从数据库中读取每一行时输出,无需占用内存来存储所有内容。

并避免使用 fetchAll 和类似方法...输出每一行...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    相关资源
    最近更新 更多