Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah bercelaru apabila php mengeksport mysql csv

Bagaimana untuk menyelesaikan masalah bercelaru apabila php mengeksport mysql csv

藏色散人
藏色散人asal
2022-11-19 09:49:101969semak imbas

Penyelesaian kepada masalah aksara bercelaru yang dieksport oleh PHP ke mysql csv: 1. Buka fail PHP yang sepadan 2. Hanya tulis logo BOM dalam pengepala fail, dengan kod seperti "fwrite($ fp, chr(0xEF)." chr(0xBB) . chr(0xBF));".

Bagaimana untuk menyelesaikan masalah bercelaru apabila php mengeksport mysql csv

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.

Bagaimana untuk menyelesaikan masalah mysql csv yang dieksport oleh php?

Csv yang dieksport terdedah kepada aksara bercelaru apabila dibuka di bawah Windows Pengenalan BOM perlu ditulis dalam pengepala fail, yang telah dirangkumkan ke dalam fungsi

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

Bahagian utama ditulis dalam pengepala fail Masukkan logo BOM

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

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bercelaru apabila php mengeksport mysql csv. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn