Maison > développement back-end > tutoriel php > Comment convertir un tableau PHP en un fichier CSV bien formaté avec des en-têtes ?

Comment convertir un tableau PHP en un fichier CSV bien formaté avec des en-têtes ?

Barbara Streisand
Libérer: 2024-10-19 18:58:30
original
379 Les gens l'ont consulté

How to Convert a PHP Array to a Well-Formatted CSV File with Headers?

Conversion de tableaux PHP en CSV : solution simplifiée

La conversion de tableaux en fichiers CSV en PHP peut être pénible. Si vous avez du mal à produire un CSV correctement formaté, cet article vous fournira une meilleure solution.

Le problème : CSV sur une seule ligne et sans en-tête

Considérez le code suivant :

<code class="php">$prods = [1, 2, 3];

foreach ($prods as $prod) {
    $sql = "SELECT * FROM products WHERE id = '$prod'";
    $result = $mysqli->query($sql);
    $info = $result->fetch_array(); 
}

// ... rest of the code</code>
Copier après la connexion

Ce code peut donner lieu à un fichier CSV constitué d'une seule et longue ligne au lieu du format souhaité avec des en-têtes et des sauts de ligne.

Solution : Utiliser fputcsv()

Pour résoudre ce problème, remplacez le code qui écrit dans le fichier CSV par ce qui suit :

<code class="php">$output = fopen("php://output",'w') or die("Can't open php://output");
header("Content-Type:application/csv"); 
header("Content-Disposition:attachment;filename=pressurecsv.csv"); 
fputcsv($output, array('id','name','description'));
foreach($prod as $product) {
    fputcsv($output, $product);
}
fclose($output) or die("Can't close php://output");</code>
Copier après la connexion

La fonction fputcsv() gère automatiquement l'échappement, les délimiteurs de champ et les fins de ligne, garantissant ainsi que le CSV est correctement formaté. .

Notes supplémentaires

  • Utilisez fopen('php://output', 'w') au lieu de coder en dur un nom de fichier pour créer le CSV en mémoire.
  • Définissez les en-têtes appropriés pour le téléchargement CSV dans header().
  • Utilisez fputcsv() pour écrire la ligne d'en-tête et les lignes suivantes du CSV.
  • Fermez le fichier à la fin avec fclose().

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal