표준 PHP 라이브러리(SPL) SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplFileObject::fputcsv — 필드 배열을 CSV 라인으로 작성


설명

public SplFileObject::fputcsv(
    array $fields,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\",
    string $eol = "\n"
): int|false
                

파일에 fields 배열을 CSV 라인으로 씁니다.


매개변수

fields
값의 배열입니다.
separator
선택적 separator 매개변수는 필드 구분 기호를 설정합니다(단일 바이트 문자 1개만).
enclosure
선택적 enclosure 매개변수는 필드 인클로저를 설정합니다(1바이트 문자만 해당).
escape
선택적 escape 매개변수는 이스케이프 문자(최대 1바이트 문자)를 설정합니다. 빈 문자열("")은 독점 이스케이프 메커니즘을 비활성화합니다.
eol
선택적 eol 매개변수는 사용자 정의 End of Line 시퀀스를 설정합니다.

메모: enclosure 문자가 필드에 포함된 경우 바로 앞에 escape가 오지 않는 한 두 배로 이스케이프됩니다.


반환 값

작성된 문자열의 길이를 반환하거나 실패 시 false를 반환합니다.

separator 또는 enclosure 매개변수가 단일 문자가 아닌 경우 false를 반환하고 CSV 행을 파일에 쓰지 않습니다.


오류/예외

separator 또는 enclosure 매개변수가 단일 문자가 아닌 경우 E_WARNING 레벨 오류가 발행됩니다.


변경 로그

버전 설명
8.1.0 선택적 eol 매개변수가 추가되었습니다.
7.4.0 escape 매개변수는 이제 독점 이스케이프 메커니즘을 비활성화하기 위해 빈 문자열도 허용합니다.

Examples

예제 #1 SplFileObject::fputcsv() 예제

                  
<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach ($list as $fields) {
    $file->fputcsv($fields);
}

?>
                  
                

위의 예는 file.csv에 다음을 씁니다.

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

                

기타

  • fputcsv() - 라인을 CSV로 포맷하고 파일 포인터에 쓰기
  • SplFileObject::fgetcsv() - 파일에서 줄을 가져오고 CSV 필드로 구문 분석합니다.