Home  >  Article  >  Backend Development  >  Detailed explanation of php data export

Detailed explanation of php data export

小云云
小云云Original
2018-02-23 15:23:011833browse

Recently I am working on a backend management project, and there is usually a need to export data to excel in the backend. After previous searches, it is usually recommended to use php excel. I often use laravel, and there is also a very useful corresponding package for php excel.
It is very easy to use at first, but when the data that needs to be exported reaches tens of thousands, it will directly cause the problem of insufficient memory.

The advantage of this solution is that it does not require additional interfaces, but it depends on the front-end developer.

  • Export to csv

This solution is faster and fully back-end implemented. The disadvantage is that the csv format has relatively high requirements for the export form. The requirement is pure data, and there cannot be rich text forms such as pictures.

The following mainly introduces how to export csv

Introduction to php official documentation

<?php

$list = array (
    array(&#39;aaa&#39;, &#39;bbb&#39;, &#39;ccc&#39;, &#39;dddd&#39;),
    array(&#39;123&#39;, &#39;456&#39;, &#39;789&#39;),
    array(&#39;"aaa"&#39;, &#39;"bbb"&#39;)
);

$fp = fopen(&#39;file.csv&#39;, &#39;w&#39;);

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

Export complete example

<?php

$name = &#39;test&#39;;
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=".$name.".csv" );
header (&#39;Cache-Control: max-age=0&#39;);

//打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen(&#39;php://output&#39;, &#39;a&#39;);    

// 写入BOM头,防止乱码
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); 

// 生成的测试数据
function test()
{
    for ($i=0; $i < 150000; $i++) {
        yield [&#39;name&#39;, $i, &#39;男&#39;];
    }
}

// 表头
$headers = [&#39;名字&#39;, &#39;年龄&#39;, &#39;性别&#39;];

fputcsv($fp, $headers);

foreach (test() as $value) {
    fputcsv($fp, $value);
}

fclose($fp);
?>

It is convenient to use with chunk in laravel Quickly export all data.

Related recommendations:

Detailed explanation of PHP data export knowledge points

Problems with PHP data export and WEB service

Problems related to PHP data export and WEB service


The above is the detailed content of Detailed explanation of php data export. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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