PHP를 사용하여 데이터베이스 데이터를 CSV로 내보내기
데이터 관리 영역에서는 데이터베이스에서 정보를 추출하여 내보내야 할 필요성이 발생할 수 있습니다. 편리한 형식으로요. 선호하는 형식이 CSV(쉼표로 구분된 값)인 경우 PHP는 이 작업에 대한 강력한 솔루션을 제공합니다.
CSV 콘텐츠 생성
배열에서 CSV 콘텐츠를 생성하려면 , 다음 기능을 활용할 수 있습니다.
function array2csv(array &$array) { if (count($array) == 0) { return null; } ob_start(); $df = fopen("php://output", 'w'); fputcsv($df, array_keys(reset($array))); foreach ($array as $row) { fputcsv($df, $row); } fclose($df); return ob_get_clean(); }
이 기능은 먼저 배열이 비어 있는지 확인합니다. 그렇지 않은 경우 출력 버퍼링을 시작하고 출력 스트림에 대한 핸들을 열고 첫 번째 배열 요소의 키가 포함된 헤더 행을 쓴 다음 배열을 반복하여 fputcsv()를 사용하여 각 행을 출력 스트림에 씁니다. 마지막으로 출력 핸들을 닫고 버퍼링된 CSV 콘텐츠를 반환합니다.
다운로드 시작
CSV 콘텐츠가 있으면 사용자가 파일을 다운로드할 수 있도록 설정할 수 있습니다. 다음 기능 사용:
function download_send_headers($filename) { // disable caching $now = gmdate("D, d M Y H:i:s"); header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); header("Last-Modified: {$now} GMT"); // force download header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); // disposition / encoding on response body header("Content-Disposition: attachment;filename={$filename}"); header("Content-Transfer-Encoding: binary"); }
이 기능에서는 캐싱 메커니즘이 비활성화되고 적절한 설정을 통해 파일이 강제로 다운로드됩니다. 헤더. Content-Disposition 헤더는 파일 이름을 지정하고 처리를 첨부 파일로 설정하는 반면, Content-Transfer-Encoding 헤더는 바이너리 전송을 나타냅니다.
사용 예
표시하려면 이러한 기능을 사용하는 방법은 다음 예를 고려하십시오.
download_send_headers("data_export_" . date("Y-m-d") . ".csv"); echo array2csv($array); die();
이 예는 지정된 파일 이름으로 다운로드 헤더를 설정합니다. CSV 콘텐츠를 출력한 다음 파일을 손상시킬 수 있는 추가 출력을 방지하기 위해 실행을 종료합니다.
위 내용은 PHP를 사용하여 데이터베이스 데이터를 CSV 파일로 내보내려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!