개발 프로세스 중에 CSV 파일은 종종 데이터 내보내기 및 데이터 교환에 사용됩니다. PHP는 배열 형식의 데이터를 CSV 파일에 작성하기 위해 매우 편리한 내장 기능 FPUTCSV ()를 제공합니다. 이 기사에서는 FPUTCSV () 함수를 사용하여 표준 CSV 파일에 배열을 올바르게 작성하는 방법을 자세히 설명합니다.
fputcsv ()는 php에서 제공하는 함수입니다. 기능은 배열 형식 데이터를 CSV 형식으로 열기 파일 리소스에 작성하는 것입니다. 이 기능은 수동 스 플라이 싱으로 인한 오류를 피하기 위해 필요한 구분자, 따옴표, 라인 브레이크 및 기타 문제를 자동으로 처리합니다.
기능 프로토 타입은 다음과 같습니다.
fputcsv(resource $stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): int|false
매개 변수 설명 :
$ stream : 파일 핸들, fopen () 로 열린 자원.
$ Fields : 작성할 1 차원 배열, 각 요소는 CSV 파일의 열을 나타냅니다.
$ 분리기 : 필드 간의 분리기, 기본값으로 쉼표 ( , ).
$ enclosure : 필드 값의 주변 문자는 이중 인용문 ( " )입니다.
$ ESCAP : 탈출 문자, 기본값은 BackSlash ( \ )입니다.
CSV 파일에 작성하려는 일련의 사용자 데이터가 있다고 가정합니다.
$data = [
['사용자 이름', '우편', '등록 시간'],
['장 산', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
['Li Si', 'lisi@m66.net', '2025-06-10 11:20:00'],
['왕 우', 'wangwu@m66.net', '2025-06-10 12:35:00']
];
위의 데이터를 user.csv 라는 파일에 작성하고 싶습니다.
<?php
// 쓰기 CSV 파일 경로
$filename = 'users.csv';
// 쓰기 모드에서 파일을 엽니 다(파일이 존재하지 않으면 자동으로 생성됩니다.)
$fp = fopen($filename, 'w');
if ($fp === false) {
die("파일을 열 수 없습니다: $filename");
}
// 쓰기数据
$data = [
['사용자 이름', '우편', '등록 시간'],
['장 산', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
['Li Si', 'lisi@m66.net', '2025-06-10 11:20:00'],
['왕 우', 'wangwu@m66.net', '2025-06-10 12:35:00']
];
// 모든 데이터 라인을 루프하고 파일에 쓰십시오.
foreach ($data as $row) {
fputcsv($fp, $row);
}
// 파일 핸들을 닫습니다
fclose($fp);
echo "CSV 파일 쓰기가 완료되었습니다。\n";
파일을 서버에 저장하지 않고 사용자가 CSV 파일을 직접 다운로드하도록하려면 다음 방법을 사용할 수 있습니다.
<?php
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="users.csv"');
$fp = fopen('php://output', 'w');
$data = [
['사용자 이름', '우편', '등록 시간'],
['장 산', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
['Li Si', 'lisi@m66.net', '2025-06-10 11:20:00'],
['왕 우', 'wangwu@m66.net', '2025-06-10 12:35:00']
];
foreach ($data as $row) {
fputcsv($fp, $row);
}
fclose($fp);
이 코드가 포함 된 PHP 파일에 액세스하면 브라우저에서는 사용자.csv 라는 파일을 다운로드하라는 메시지가 표시되며 콘텐츠는 우리가 준비한 데이터입니다.
문자 인코딩 문제 : 기본 출력은 UTF-8입니다. Excel에서 열 때 Barlled 코드가 나타나면 출력 전에 UTF-8 BOM 헤더를 추가 할 수 있습니다.
echo "\xEF\xBB\xBF"; // 추가 BOM
배열은 1 차원이어야합니다 . fputcsv ()는 1 차원 배열 만 허용하며 다차원 배열로 전달하면 행으로 행으로 처리해야합니다.
파일 권한 문제 : PHP 스크립트에 지정된 디렉토리에 쓸 수있는 권한이 있는지 확인하십시오. 그렇지 않으면 fopen () 이 실패합니다.
PHP의 fputcsv () 함수를 통해 로컬 파일에 작성되었거나 브라우저를 통해 직접 다운로드하든 CSV 파일에 배열 형식 데이터를 쉽게 쓸 수 있습니다. 데이터를 준비하고 파일 작동 기능을 올바르게 사용하여 효율적이고 표준화 된 데이터 내보내기 기능을 달성하십시오.