>백엔드 개발 >PHP 튜토리얼 >PHP 스크립트에서 CSV 파일을 다운로드하는 방법은 무엇입니까?

PHP 스크립트에서 CSV 파일을 다운로드하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-09 12:42:02917검색

How to Download a CSV File from a PHP Script?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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