PHP 스크립트에서 CSV 파일을 생성하고 다운로드하는 방법: 종합 안내서
소개
데이터 수집을 위해 CSV(쉼표로 구분된 값) 파일 생성 및 다운로드가 필요한 경우가 많습니다. 교환 및 분석. PHP에서는 여러 가지 방법을 통해 이 작업을 수행할 수 있습니다. 이 가이드는 초보 프로그래머에게도 이를 달성하는 방법에 대한 철저한 연습을 제공합니다.
CSV 문자열 생성
배열에서 CSV 문자열을 생성하려면 각 요소는 쉼표로 구분된 값으로 변환되어야 합니다. 이는 fputcsv() 함수를 사용하여 달성할 수 있습니다:
$output = fopen("php://temp", "w"); foreach ($array as $line) { fputcsv($output, $line); } fseek($output, 0);
HTTP 헤더 보내기
브라우저에 CSV 파일을 표시하는 대신 저장하라는 메시지를 표시하려면, 특정 HTTP 헤더를 보내야 합니다:
header('Content-Disposition: attachment; filename="filename.csv"'); header('Content-Type: text/csv');
CSV 생성 및 다운로드 파일
위 단계를 결합하여 CSV 파일을 생성하고 다운로드하는 함수를 만들 수 있습니다.
function downloadCsv(array $array, string $filename): void { // Create the CSV string $output = fopen("php://temp", "w"); foreach ($array as $line) { fputcsv($output, $line); } fseek($output, 0); // Send HTTP headers header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Type: text/csv'); // Send the CSV file fpassthru($output); }
이 함수를 사용하여 다음 코드로 CSV 파일을 다운로드할 수 있습니다.
$array = [ ['id', 'name', 'email'], ['1', 'John', 'john@example.com'], ['2', 'Jane', 'jane@example.com'] ]; downloadCsv($array, 'contacts.csv');
대안 방법
php://temp를 사용하는 대신 출력 버퍼에 직접 쓸 수 있습니다:
function downloadCsv2(array $array, string $filename): void { header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Type: text/csv'); $f = fopen('php://output', 'w'); foreach ($array as $line) { fputcsv($f, $line); } }
위 내용은 PHP 스크립트에서 CSV 파일을 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!