>백엔드 개발 >PHP 문제 >PHP가 mysql csv를 내보낼 때 왜곡되는 문제를 해결하는 방법

PHP가 mysql csv를 내보낼 때 왜곡되는 문제를 해결하는 방법

藏色散人
藏色散人원래의
2022-11-19 09:49:101873검색

mysql csv를 내보내는 PHP의 잘못된 문제에 대한 해결책: 1. 해당 PHP 파일을 엽니다. 2. "fwrite($fp, chr(0xEF))와 같은 코드를 사용하여 파일 헤더에 BOM 로고를 작성합니다. chr(0xBB)" .chr(0xBF));”.

PHP가 mysql csv를 내보낼 때 왜곡되는 문제를 해결하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.

php가 mysql csv를 내보낼 때 왜곡되는 문제를 해결하는 방법은 무엇입니까?

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));

추천 학습: "PHP 비디오 튜토리얼

위 내용은 PHP가 mysql csv를 내보낼 때 왜곡되는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.