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

Comment télécharger un fichier CSV à partir d'un tableau PHP ?

Linda Hamilton
Libérer: 2024-11-08 16:57:02
original
480 Les gens l'ont consulté

How to Download a CSV file from a PHP Array?

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

Créer et télécharger un fichier CSV à partir d'un tableau PHP est une technique utile dans le développement de sites Web. Voici un guide détaillé pour les programmeurs débutants :

Création du fichier CSV

  1. Boucle à travers le tableau : Parcourez les éléments de votre Tableau PHP.
  2. Créer des lignes CSV : Pour chaque tableau élément, utilisez la fonction fputcsv() pour générer une ligne de valeurs séparées par des virgules (CSV). Cette fonction prend l'élément du tableau et un délimiteur (généralement une virgule) comme paramètres.

Exemple :

$array = [
    ['fs_id' => '4c524d8abfc6ef3b201f489c', 'name' => 'restaurant', ...],
    // More array elements...
];

$delimiter = ',';

$csv = fopen('tmp.csv', 'w');

foreach ($array as $line) {
    fputcsv($csv, $line, $delimiter);
}
Copier après la connexion

Téléchargement du fichier CSV

  1. Définir les en-têtes HTTP : Pour faites en sorte que le navigateur propose une boîte de dialogue "Enregistrer sous", définissez les en-têtes HTTP qui spécifient le nom du fichier et son type au format CSV.
header('Content-Disposition: attachment; filename="filename.csv"');
header('Content-Type: text/csv');
Copier après la connexion
  1. Envoyez le CSV au navigateur : Utilisez la fonction fpassthru() pour envoyer les lignes CSV générées au navigateur.
fseek($csv, 0); // Reset the file pointer to the start
fpassthru($csv);
Copier après la connexion

Mettre tout cela ensemble

La fonction suivante combine les deux étapes et vous permet de télécharger un fichier CSV à partir d'un array :

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

    // Create a file pointer
    $csv = fopen('php://memory', 'w');

    // Loop through the array and create CSV lines
    foreach ($array as $line) {
        fputcsv($csv, $line, $delimiter);
    }

    // Send the generated CSV to the browser
    fpassthru($csv);
}
Copier après la connexion

Utilisation :

$array = [
    ['fs_id' => '4c524d8abfc6ef3b201f489c', 'name' => 'restaurant', ...],
    // More array elements...
];

array_to_csv_download($array, 'restaurants.csv');

// The CSV file will be downloaded to the user's computer.
Copier après la connexion

Remarque supplémentaire :

Comme alternative à l'utilisation de php : //mémoire, vous pouvez également utiliser php://output pour le descripteur de fichier, ce qui peut être plus efficace pour les gros fichiers. ensembles de données.

Cette méthode fournit un moyen simple de créer et de télécharger des fichiers CSV à partir de tableaux PHP, ce qui en fait un outil précieux pour les développeurs de sites Web.

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