Maison >développement back-end >tutoriel php >Comment gérer la sortie sur une seule ligne et le téléchargement de fichiers lors de la conversion d'un tableau PHP en CSV ?
Votre code vise à convertir un tableau de produits en un fichier CSV, mais vous rencontrez des problèmes entraînant une sortie sur une seule ligne sans en-tête de téléchargement approprié.
La cause première de la sortie sur une seule ligne réside dans les boucles imbriquées qui construisent le contenu CSV. Envisagez de rationaliser le processus à l'aide de la fonction fputcsv() au lieu de construire manuellement le CSV. Cela simplifie le processus et garantit un formatage approprié.
Pour déclencher un téléchargement de fichier, vous devez définir les en-têtes HTTP appropriés. Voici comment procéder :
<code class="php">header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=your_desired_name.csv");</code>
Cependant, le code fourni écrit le fichier CSV directement dans le flux de sortie, le rendant inaccessible aux bibliothèques JavaScript que vous pourriez utiliser pour le traitement côté client.
Voici une approche alternative qui résout ces problèmes à l'aide de fputcsv() :
<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>
Ce code crée le fichier CSV et le diffuse dans le tampon de sortie. La fonction fputcsv() gère automatiquement le formatage et l'échappement des valeurs. La dernière ligne ferme le flux de sortie, libérant ainsi des ressources.
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!