Let's talk about how to write millions of data into csv in php

藏色散人
Release: 2023-04-11 09:36:01
forward
4398 people have browsed it

This article brings you relevant knowledge about PHP csv. It mainly introduces how to write millions of data into csv through script files in PHP. Let’s take a look at how to achieve it. I hope it will be helpful to everyone. helpful.

Let's talk about how to write millions of data into csv in php

Requirements:

Write millions of data to csv.

Framework:

N The old framework many years ago cannot be found on Baidu, so the writing method is closer to the original

Analysis:

The amount of data is too large and cannot be written to csv download using the browser request, so write a script to retrieve it

Pseudo code:

//xxx - 根据自己项目替换 //调取脚本文件 exec(xxx); //脚本文件 //设置执行时间和内存 set_time_limit(0); ini_set('memory_limit', '128M'); //循环获取 $id = 0; $data = 'xxx'.'\n';//表头 while(true){ //SQL $list = xxx WHERE id > $id ORDER BY id ASC LIMIT 10000; //每次取1w防止数据库压力大,根据sql来,我这个有联表, if(empty($list)){ break; } foreach($list as $row){ $data .= '"' . $row['xxx'] . '",'; $data .= "\n"; $id = $row['id'];//更新最大id } //追加写入csv file_put_contents('xxx', mb_convert_encoding($data, 'gbk'),FILE_APPEND); unset($data);//基础不好不确定初始化能不能清内存就先unset了 $data = '';//初始化 }
Copy after login

Essentially, it is written in batches. When I first started experimenting, I planned not to write file_put_contents in the loop. Later, I found that when the amount of data is large, hundreds of thousands of data, $data memory will be exceeded. In addition, if there are more than one million data, it will be necessary. When exporting files, Excel does not support opening more than 1,048,576 rows. Theoretically, you can add the $all_count parameter to count the total number of current queries. If it exceeds one million, add new files.

If there is a better method or code optimization, please discuss it.

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of Let's talk about how to write millions of data into csv in php. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!