Maison >développement back-end >tutoriel php >Comment implémenter l'exportation de données PHP

Comment implémenter l'exportation de données PHP

php中世界最好的语言
php中世界最好的语言original
2018-05-18 14:45:222666parcourir

Cette fois, je vais vous montrer comment implémenter l'exportation de données PHP, quelles sont les précautions pour l'implémentation de l'exportation de données PHP, ce qui suit est un cas pratique, jetons un coup d'œil.

Il est très simple à utiliser au début, mais lorsque les données à exporter atteignent des dizaines de milliers, cela provoquera directement le problème de mémoire insuffisante.

Ensuite j'ai trouvé plusieurs solutions.

Solution Front-end

PHP coopère avec SheetJS/js-xlsx pour exporter une grande quantité de données Excel

L'avantage de cette solution est qu'il ne nécessite pas d'interfaces supplémentaires, mais cela dépend des développeurs front-end.

Exporter vers csv

Cette solution est plus rapide et entièrement implémentée en back-end. L'inconvénient est que le format csv a des exigences relativement élevées sur le formulaire exporté, et le. l'exigence est des données pures, ce qui ne peut pas être le cas. Il existe des formes de texte riches telles que des images.

Ce qui suit présente principalement comment exporter au format CSV

Introduction à la documentation officielle php

<?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);
?>

Exporter un exemple complet

<?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);
?>

L'utiliser avec chunk dans Laravel peut exporter facilement et rapidement toutes les données.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée de l'utilisation de l'espace de noms PHP

Explication détaillée de l'utilisation de la migration de la base de données thinkphp5 migrate

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn