Position actuelle: Accueil> Derniers articles> Comment écrire correctement les données du tableau dans un fichier CSV à l'aide de la fonction FputCSV de PHP? Quelles sont les étapes détaillées?

Comment écrire correctement les données du tableau dans un fichier CSV à l'aide de la fonction FputCSV de PHP? Quelles sont les étapes détaillées?

M66 2025-06-26

Pendant le processus de développement, les fichiers CSV sont souvent utilisés pour l'exportation de données et l'échange de données. PHP fournit une fonction intégrée très pratique fputcsv () pour l'écriture de données formatées à tableau dans les fichiers CSV. Cet article expliquera en détail comment utiliser la fonction fputcsv () pour écrire correctement un tableau dans un fichier CSV standard.

1. Qu'est-ce que Fputcsv?

Fputcsv () est une fonction fournie par PHP. Sa fonction est d'écrire des données de format de tableau dans la ressource de fichier ouvert au format CSV. Cette fonction traitera automatiquement les délimiteurs, citations, les pauses de ligne et autres problèmes nécessaires pour éviter les erreurs causées par l'épissage manuel.

Le prototype de fonction est le suivant:

 fputcsv(resource $stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): int|false

Description du paramètre:

  • $ Stream : Handle de fichier, ressource ouverte avec fopen () .

  • $ champs : un tableau unidimensionnel à écrire, chaque élément représente une colonne dans le fichier CSV.

  • $ séparateur : le séparateur entre les champs, par défaut à la virgule ( , ).

  • $ Enceinte : le caractère entouré de la valeur du champ, qui est en double guillemets ( " ).

  • $ Escape : le caractère d'échappement, la valeur par défaut est arrière ( \ ).

2. Préparez les données à écrire

Supposons que nous ayons un ensemble de données utilisateur que nous souhaitons écrire dans un fichier CSV:

 $data = [
    ['nom d'utilisateur', 'Mail', 'Temps d'inscription'],
    ['Zhang San', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
    ['Li si', 'lisi@m66.net', '2025-06-10 11:20:00'],
    ['Wang wu', 'wangwu@m66.net', '2025-06-10 12:35:00']
];

3. Compléter des exemples de code pour l'écriture dans les fichiers CSV

Nous voulons écrire les données ci-dessus dans un fichier nommé Users.csv :

 <?php

// Être écrit CSV Chemin de fichier
$filename = 'users.csv';

// Ouvrez un fichier en mode écriture(Si le fichier n&#39;existe pas, il sera automatiquement créé)
$fp = fopen($filename, 'w');

if ($fp === false) {
    die("Impossible d&#39;ouvrir le fichier: $filename");
}

// Être écrit数据
$data = [
    ['nom d&#39;utilisateur', 'Mail', 'Temps d&#39;inscription'],
    ['Zhang San', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
    ['Li si', 'lisi@m66.net', '2025-06-10 11:20:00'],
    ['Wang wu', 'wangwu@m66.net', '2025-06-10 12:35:00']
];

// Boucle chaque ligne de données et écrire dans un fichier
foreach ($data as $row) {
    fputcsv($fp, $row);
}

// Fermez la poignée du fichier
fclose($fp);

echo "CSV L&#39;écriture de fichiers est terminée。\n";

4. Sortir au navigateur à télécharger (facultatif)

Si vous ne souhaitez pas enregistrer le fichier sur le serveur, mais que l'utilisateur télécharge directement le fichier CSV, vous pouvez utiliser la méthode suivante:

 <?php

header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="users.csv"');

$fp = fopen('php://output', 'w');

$data = [
    ['nom d&#39;utilisateur', 'Mail', 'Temps d&#39;inscription'],
    ['Zhang San', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
    ['Li si', 'lisi@m66.net', '2025-06-10 11:20:00'],
    ['Wang wu', 'wangwu@m66.net', '2025-06-10 12:35:00']
];

foreach ($data as $row) {
    fputcsv($fp, $row);
}

fclose($fp);

En accédant au fichier PHP contenant ce code, le navigateur vous invitera à télécharger un fichier nommé Users.csv , et le contenu est les données que nous avons préparées.

5. Des questions et précautions fréquemment posées

  1. Problème d'encodage de caractères : la sortie par défaut est UTF-8. Si le code brouillé apparaît lors de l'ouverture dans Excel, vous pouvez ajouter un en-tête UTF-8 BOM avant la sortie:

     echo "\xEF\xBB\xBF"; // Ajouter à BOM
    
  2. Le tableau doit être unidimensionnel : fputcsv () accepte uniquement les tableaux unidimensionnels, et si vous passez dans un tableau multidimensionnel, vous devez traiter la ligne par ligne.

  3. Problème des autorisations de fichier : assurez-vous que le script PHP a la permission d'écrire dans le répertoire spécifié, sinon FOPEN () échouera.

6. Résumé

Grâce à la fonction fputcsv () de PHP, nous pouvons facilement écrire des données de format de tableau sur les fichiers CSV, qu'il soit écrit dans des fichiers locaux ou téléchargé directement via le navigateur. Préparez simplement les données et utilisez correctement les fonctions de fonctionnement du fichier pour atteindre des fonctions d'exportation de données efficaces et standardisées.