Maison > développement back-end > tutoriel php > Comment télécharger par programme des fichiers CSV à partir d'un tableau PHP ?

Comment télécharger par programme des fichiers CSV à partir d'un tableau PHP ?

DDD
Libérer: 2024-11-10 13:33:02
original
902 Les gens l'ont consulté

How to Programmatically Download CSV Files from a PHP Array?

Comment créer et télécharger un fichier CSV à partir d'un script PHP

Présentation

Cet article vise à fournir une solution complète pour créer et télécharger un Fichier CSV (Comma-Separated Values) à partir d'un tableau PHP. En tant que programmeur débutant, vous aurez peut-être besoin d'aide pour implémenter cette fonctionnalité.

Génération de lignes CSV

Pour générer des lignes CSV à partir de votre tableau PHP, vous pouvez utiliser la fonction fputcsv() intégrée, qui convertit les tableaux en chaînes formatées adaptées au CSV :

$f = fopen("tmp.csv", "w");
foreach ($array as $line) {
    fputcsv($f, $line);
}
Copier après la connexion

En-têtes HTTP à télécharger

Pour lancer un téléchargement de fichier à partir du navigateur, l'envoi des en-têtes HTTP appropriés est crucial. L'un de ces en-têtes est :

header('Content-Disposition: attachment; filename="filename.csv";');
Copier après la connexion

Cet en-tête informe le navigateur que la réponse contient une pièce jointe avec le nom de fichier spécifié.

Rassembler le tout

Combiner le CSV génération de ligne et en-tête HTTP, vous pouvez créer une fonction de téléchargement de CSV :

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    // Open a memory file for efficient handling without temporary files.
    $f = fopen('php://memory', 'w'); 
    // Generate CSV lines and write them to the memory file.
    foreach ($array as $line) { 
        fputcsv($f, $line, $delimiter); 
    }
    // Reset the file pointer to begin sending the file.
    fseek($f, 0);
    // Set CSV-related HTTP headers.
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="'. $filename . '";');
    // Output the generated CSV lines to the browser for download.
    fpassthru($f);
}
Copier après la connexion

Exemple d'utilisation

Pour utiliser cette fonction, transmettez simplement votre tableau et le nom de fichier souhaité :

array_to_csv_download(array(
  array(1, 2, 3, 4), // First row
  array(1, 2, 3, 4) // Second row
), "numbers.csv");
Copier après la connexion

Option de sortie alternative

Au lieu d'écrire dans un fichier mémoire, vous pouvez également utiliser php://output comme descripteur de fichier, éliminant ainsi le besoin de recherche de fichier :

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="'. $filename . '";');

    // Open the php://output stream for direct output.
    $f = fopen('php://output', 'w');

    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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal