Maison  >  Article  >  développement back-end  >  Comment résoudre les problèmes de conversion de tableau PHP en CSV et mettre en œuvre une approche supérieure

Comment résoudre les problèmes de conversion de tableau PHP en CSV et mettre en œuvre une approche supérieure

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 19:02:30220parcourir

How to Resolve PHP Array to CSV Conversion Issues and Implement a Superior Approach

Tableau PHP en CSV : dépannage et approche supérieure

L'objectif de convertir une gamme de produits en un fichier CSV peut être atteint efficacement. Cependant, il y a des nuances à aborder.

Dans votre code, le problème principal semble résider dans l'utilisation de plusieurs boucles, ce qui peut conduire à une sortie CSV sur une seule ligne indésirable.

< ;h3>Une meilleure solution

Pour surmonter ce problème, envisagez d'utiliser la fonction PHP intégrée, fputcsv(). Voici un extrait de code amélioré :

<code class="php">$sql = "SELECT id, name, description FROM products";
if ($result = $mysqli->query($sql)) {
    $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'));
    while ($p = $result->fetch_array()) {
        fputcsv($output, $p);
    }
    fclose($output) or die("Can't close php://output");
}</code>

Dans cette approche révisée :

  • fputcsv() écrit une ligne dans le fichier CSV, en prenant un tableau en entrée.
  • La boucle parcourt chaque ligne, les écrivant dans le CSV.

Remarque : N'oubliez pas de dissocier() le fichier après l'avoir créé si vous ne souhaitez pas le stocker une copie sur le serveur.

En implémentant ces modifications, vous pouvez générer un fichier CSV bien formaté avec des en-têtes et des sauts de ligne comme prévu.

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