En PHP, vous pouvez utiliser le cache du serveur pour exporter rapidement du CSV avec des millions de données. Aujourd'hui, je vais vous apprendre à exporter rapidement du CSV. Vous pouvez vous y référer si vous en avez besoin.
php implémente l'exportation de données au niveau d'un million. Le cache du serveur est utilisé pour y parvenir
Implémentation :
1 : Créer un. table de test, Et ajouter des données de test
1 : Créer une table de test
Ici j'ai créé une table de test, les champs sont : id, nom, âge, email
2 : Ajouter des données de test
(1) Ajoutez d'abord manuellement plusieurs lignes de données à la table
Ensuite, exécutez la commande suivante pour ajouter des données par lots
INSERT INTO test (name,age,email) SELECT name,age,email FROM test;
Exécutez la commande ci-dessus plusieurs fois pour tester les données sera une augmentation exponentielle, de sorte que vous puissiez obtenir beaucoup de données de test
Deux : PHP implémente l'exportation de millions de données (ma commande de requête voici la commande de requête fournie avec le framework Yii )
//让程序一直运行 set_time_limit(0); //设置程序运行内存 ini_set('memory_limit', '128M'); //导出文件名 $fileName = '测试导出数据'; header('Content-Encoding: UTF-8'); header("Content-type:application/vnd.ms-excel;charset=UTF-8"); header('Content-Disposition: attachment;filename="' . $fileName . '.csv"'); //打开php标准输出流 $fp = fopen('php://output', 'a'); //添加BOM头,以UTF8编码导出CSV文件,如果文件头未添加BOM头,打开会出现乱码。 fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); //添加导出标题 fputcsv($fp, ['姓名', '岁数', '邮箱']); $nums = 10000; //每次导出数量 $count = Test::find()->count(); $step = ceil($count/$nums);//循环次数 for($i = 0; $i < $step; $i++) { $result = Test::find() ->select(['name', 'age', 'email']) ->limit($nums) ->offset($i * $nums) ->asArray() ->all(); foreach ($result as $item) { fputcsv($fp, $item); } //每1万条数据就刷新缓冲区 ob_flush(); flush(); } exit;
Test comme ci-dessus Plus tard, vous constaterez qu'il ne faut qu'une dizaine de secondes pour exporter environ un million de données, ce qui est assez efficace
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!