Maison >développement back-end >tutoriel php >Comment générer et télécharger un fichier CSV à partir d'une base de données MySQL en utilisant PHP ?

Comment générer et télécharger un fichier CSV à partir d'une base de données MySQL en utilisant PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-10 21:44:18955parcourir

How to Generate and Download a CSV File from a MySQL Database using PHP?

Comment créer et télécharger un fichier CSV pour un utilisateur en PHP

Question :

Un utilisateur a demandé à récupérer les données d'une base de données MySQL sous forme de fichier CSV. Comment un script PHP peut-il générer le fichier CSV et inviter l'utilisateur à le télécharger lorsqu'il visite une URL ?

Réponse :

Pour créer et télécharger un fichier CSV dans PHP :

header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");

function outputCSV($data) {
  $output = fopen("php://output", "wb");
  foreach ($data as $row)
    fputcsv($output, $row); // here you can change delimiter/enclosure
  fclose($output);
}

outputCSV(array(
  array("name 1", "age 1", "city 1"),
  array("name 2", "age 2", "city 2"),
  array("name 3", "age 3", "city 3")
));

Explication :

  1. En-tête CSV de sortie :

    • L'en-tête ("Contenu- Type : text/csv") définit le type de contenu sur CSV.
    • Le header("Content-Disposition: attachment; filename=file.csv") définit le nom de fichier pour télécharger le fichier CSV et le type de disposition du contenu (pièce jointe).
  2. Sortie Fonction CSV (outputCSV) :

    • La fonction outputCSV prend un tableau de lignes comme input.
    • Il ouvre un flux pour la sortie vers php://output.
    • Pour chaque ligne, il utilise fputcsv pour écrire la ligne dans le flux. Par défaut, fputcsv utilise la virgule comme délimiteur de champ et les guillemets comme enceinte. Vous pouvez personnaliser ces options selon vos besoins.
    • Enfin, le flux est fermé.
  3. Données CSV de sortie :

    • Le La fonction outputCSV est appelée avec un tableau de lignes de données.
    • Chaque ligne représente un enregistrement de MySQL base de données.

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