소개
웹사이트 기능을 향상하기 위해 다음과 같은 시나리오가 발생할 수 있습니다. 사용자가 다운로드할 수 있도록 PHP 배열의 데이터를 CSV 파일로 내보내야 합니다. 그러나 초보 프로그래머로서 이 작업을 실행하는 방법을 이해하는 것은 어려울 수 있습니다. 이 문서에서는 이 목표를 효과적으로 달성하기 위한 포괄적인 가이드를 제공합니다.
CSV 파일 생성
PHP 배열에서 CSV 파일을 생성하려면 내장된 fputcsv() 함수:
$f = fopen("tmp.csv", "w"); foreach ($array as $line) { fputcsv($f, $line); }
HTTP 헤더 구성
브라우저에서 "다른 이름으로 저장" 대화 상자를 실행하려면 적절한 HTTP 헤더를 지정해야 합니다.
header('Content-Disposition: attachment; filename="filename.csv"');
두 프로세스 결합
CSV 파일 생성과 HTTP 헤더 구성을 결합하여 다음 기능을 생성할 수 있습니다.
function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") { // Open file in memory $f = fopen('php://memory', 'w'); // Generate CSV data foreach ($array as $line) { fputcsv($f, $line, $delimiter); } // Set headers header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="' . $filename . '"'); // Output file fpassthru($f); }
사용법
이 기능을 사용하려면 PHP 배열과 파일 이름만 제공하면 됩니다.
array_to_csv_download(array( array(1, 2, 3, 4), array(1, 2, 3, 4) ), "numbers.csv");
대체 방법
성능 향상을 위해 php://memory 대신 php://output을 사용하고 탐색 작업을 제거할 수 있습니다.
function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") { header('Content-Type: application/csv'); header('Content-Disposition: attachment; filename="' . $filename . '"'); // Open output stream $f = fopen('php://output', 'w'); // Generate CSV data foreach ($array as $line) { fputcsv($f, $line, $delimiter); } }
위 내용은 PHP 스크립트에서 CSV 파일을 만들고 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!