Maison >développement back-end >Problème PHP >Comment résoudre le problème tronqué lorsque php exporte mysql csv

Comment résoudre le problème tronqué lorsque php exporte mysql csv

藏色散人
藏色散人original
2022-11-19 09:49:101873parcourir

Solution au problème tronqué de l'exportation php mysql csv : 1. Ouvrez le fichier php correspondant ; 2. Écrivez simplement le logo BOM dans l'en-tête du fichier, avec un code tel que "fwrite($fp, chr(0xEF) . chr(0xBB)" .chr(0xBF));".

Comment résoudre le problème tronqué lorsque php exporte mysql csv

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.

Comment résoudre le problème tronqué lorsque php exporte mysql csv ?

L'exportation de fichiers CSV est sujette à des caractères tronqués lorsqu'elle est ouverte sous Windows. Vous devez écrire le logo de la nomenclature dans l'en-tête du fichier, qui a été encapsulé dans une fonction

/**
 * @param array $rows
 * @param array $fields
 * @param string $filename
  */
  function kg_export_csv($rows, $fields = [], $filename = '')
  {
    $filename = $filename ?: kg_uniqid();
  
    header("Content-Type: text/csv");
    header("Content-Disposition:filename={$filename}.csv");
  
    $fp = fopen('php://output', 'w');
  
    fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));
  
    if ($fields) fputcsv($fp, $fields);
  
    $index = 0;
  
    foreach ($rows as $row) {
     if ($index == 1000) {
     $index = 0;
     ob_flush();
     flush();
    }
    $index++;
    fputcsv($fp, $row);
  }

L'élément clé est d'écrire le logo de la nomenclature dans l'en-tête du fichier.

fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));

Apprentissage recommandé : "Tutoriel vidéo PHP

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!

Déclaration:
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