Maison > développement back-end > tutoriel php > Comment créer et télécharger des fichiers CSV à partir de scripts PHP ?

Comment créer et télécharger des fichiers CSV à partir de scripts PHP ?

Susan Sarandon
Libérer: 2024-11-12 20:28:02
original
271 Les gens l'ont consulté

How to Create and Download CSV Files from PHP Scripts?

Création et téléchargement de 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);
}
Copier après la connexion

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"');
Copier après la connexion

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);
}
Copier après la connexion

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");
Copier après la connexion

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);
    }
}
Copier après la connexion

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.cn
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