CSV (Comma Separated Values) est l'une des méthodes les plus courantes de transfert de données tabulaires entre applications ; la création de code pour exporter des données au format CSV peut être très utile dans de nombreuses applications. L'article suivant vous montrera comment utiliser PHP pour créer des fichiers CSV. J'espère qu'il vous sera utile.
Ce qui suit est une introduction détaillée à travers des exemples de code :
Création d'un fichier CSV à l'aide de données statiques
Si vous souhaitez stocker les données dans un fichier csv, vous pouvez utiliser un code similaire à :
<?php // 创建并打开“demosaved.csv”文件进行写入 $file = fopen('demosaved.csv', 'w'); // 保存列标题 fputcsv($file, array('Column 1', 'Column 2', 'Column 3', 'Column 4', 'Column 5')); // 样本数据,这可以从MySQL中获取 $data = array( array('Data 11', 'Data 12', 'Data 13', 'Data 14', 'Data 15'), array('Data 21', 'Data 22', 'Data 23', 'Data 24', 'Data 25'), array('Data 31', 'Data 32', 'Data 33', 'Data 34', 'Data 35'), array('Data 41', 'Data 42', 'Data 43', 'Data 44', 'Data 45'), array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55') ); // 保存每一行数据 foreach ($data as $row) { fputcsv($file, $row); } // 关闭文件 fclose($file); ?>
Description du code
Ligne 3 : Ouvrez le fichier nommé "demosaved.csv" en écriture. Assurez-vous que le serveur peut écrire à l'emplacement où ce fichier est enregistré
Ligne 6 : Ajouter des en-têtes de colonnes. Si vous ne souhaitez aucun en-tête de colonne, vous pouvez ignorer cette étape.
Lignes 9 à 15 : Représente les données à stocker dans le fichier. Si vous souhaitez obtenir des données de MySQL, vous devez utiliser du code pour vous connecter à la base de données et obtenir les données, puis remplacer ces lignes par
Lignes 17 à 21 : parcourir chaque ligne de données et enregistrer les données
Ligne 24 : Fermez le fichier. Une fois que nous avons fini d'écrire toutes les données dans le fichier, nous devons fermer le fichier.
Obtenez des données de MySQL pour créer et télécharger automatiquement des fichiers CSV
<?php // 设置输出标头,以便下载文件 header('Content-type: text/csv'); header('Content-Disposition: attachment; filename="demo.csv"'); // 不缓存文件 header('Pragma: no-cache'); header('Expires: 0'); // 创建连接到输出流的文件指针 $file = fopen('php://output', 'w'); // 打开数据库连接 $link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db'); //查询数据库 $query = 'SELECT field1, field2, field3, field4, field5 FROM table'; if ($rows = mysqli_query($link, $query)) { // 保存每一行数据 while ($row = mysqli_fetch_assoc($rows)) { fputcsv($file, $row); } //自由结果集 mysqli_free_result($result); } // 关闭连接 mysqli_close($link); ?>
Description du code :
Parce que nous voulons télécharger un fichier, nous devons envoyer des en-têtes (lignes 3 et 4) qui indiquent au navigateur de télécharger le fichier.
Ligne 3 : Indiquer au navigateur que le type MIME du contenu est texte/csv, puisque nous envoyons un fichier csv.
Ligne 4 : Envoyer l'en-tête "Content-Disposition" avec son la valeur est « pièce jointe » et le nom du fichier est « demo.csv ». Cela indiquera au navigateur de télécharger un fichier appelé "demo.csv" au lieu de l'afficher.
Lignes 7 et 8 : Dites au navigateur de ne pas mettre le fichier en cache. Ceci est utile si nous envoyons plusieurs fichiers avec le même nom, sinon ce n'est pas nécessaire
Ligne 11 : Représente l'ouverture du pointeur de fichier pour envoyer des données
Ligne 14~Ligne 30 : Depuis mysql Get data
Remarque : Vous devez vous assurer de modifier les paramètres de connexion et les requêtes de la base de données. De plus, ce code lié à la base de données n'est qu'un exemple. Dans une application réelle, il peut se trouver dans un fichier différent et il devrait également y avoir une gestion des erreurs.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !
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!