导出csv在windows下关上容易呈现乱码,须要在文件头部写入BOM标识,曾经封装成一个函数了

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

要害局部,文件头写入BOM标识

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

原文链接:https://koogua.com/article/103