Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das verstümmelte Problem, wenn PHP MySQL-CSV exportiert

So lösen Sie das verstümmelte Problem, wenn PHP MySQL-CSV exportiert

藏色散人
藏色散人Original
2022-11-19 09:49:101821Durchsuche

Lösung für das verstümmelte Problem des PHP-Exports von MySQL-CSV: 1. Öffnen Sie die entsprechende PHP-Datei. 2. Schreiben Sie einfach das BOM-Logo in den Header der Datei, mit Code wie „fwrite($fp, chr(0xEF)“. chr(0xBB)" .chr(0xBF));".

So lösen Sie das verstümmelte Problem, wenn PHP MySQL-CSV exportiert

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.

Wie kann man das verstümmelte Problem lösen, wenn PHP MySQL CSV exportiert?

Das Exportieren von CSV-Dateien ist beim Öffnen unter Windows anfällig für verstümmelte Zeichen. Sie müssen das BOM-Logo in den Dateikopf schreiben, der in eine Funktion gekapselt wurde

/**
 * @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);
  }

Der wichtigste Teil besteht darin, das BOM-Logo in den Dateikopf zu schreiben

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

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo lösen Sie das verstümmelte Problem, wenn PHP MySQL-CSV exportiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn