Maison >développement back-end >tutoriel php >Comment créer et télécharger des fichiers CSV à partir de scripts PHP ?
Introduction
Pour améliorer les fonctionnalités du site Web, vous pouvez rencontrer des scénarios dans lesquels vous Vous devez exporter les données de vos tableaux PHP vers des fichiers CSV pour les télécharger par les utilisateurs. Cependant, en tant que programmeur débutant, comprendre comment exécuter cette tâche peut s’avérer difficile. Cet article propose un guide complet pour atteindre cet objectif efficacement.
Création du fichier CSV
Pour générer le fichier CSV à partir de votre tableau PHP, vous pouvez utiliser le dans la fonction fputcsv() :
$f = fopen("tmp.csv", "w"); foreach ($array as $line) { fputcsv($f, $line); }
Configuration HTTP En-têtes
Pour déclencher la boîte de dialogue « Enregistrer sous » dans les navigateurs, vous devez spécifier les en-têtes HTTP appropriés :
header('Content-Disposition: attachment; filename="filename.csv"');
Combiner les deux processus
En combinant la création du fichier CSV et la configuration de l'en-tête HTTP, vous pouvez générer ce qui suit function:
function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") { // Open file in memory $f = fopen('php://memory', 'w'); // Generate CSV data foreach ($array as $line) { fputcsv($f, $line, $delimiter); } // Set headers header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="' . $filename . '"'); // Output file fpassthru($f); }
Utilisation
Pour utiliser cette fonction, vous pouvez simplement fournir votre tableau PHP et un nom de fichier :
array_to_csv_download(array( array(1, 2, 3, 4), array(1, 2, 3, 4) ), "numbers.csv");
Méthode alternative
Pour des performances améliorées, vous pouvez utiliser php://output au lieu de php://memory et éliminez l'opération de recherche :
function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") { header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="' . $filename . '"'); // Open output stream $f = fopen('php://output', 'w'); // Generate CSV data foreach ($array as $line) { fputcsv($f, $line, $delimiter); } }
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!