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

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

SplFileObject::fgetcsv — 파일에서 줄을 가져오고 CSV 필드로 구문 분석합니다.


설명

public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false

CSV 형식의 파일에서 한 줄을 가져오고 읽은 필드가 포함된 배열을 반환합니다.

메모: 이 함수는 로케일 설정을 고려합니다. LC_CTYPE이 예를 들면 en_US.UTF-8, 1바이트 인코딩의 파일은 이 함수로 잘못 읽을 수 있습니다.


매개변수

separator
필드 구분 기호(1바이트 문자만 해당). 기본값은 쉼표 또는 SplFileObject::setCsvControl()을 사용하여 설정된 값입니다.
enclosure
필드 엔클로저 문자(단일 바이트 문자 1개만). 기본값은 큰따옴표 또는 SplFileObject::setCsvControl()을 사용하여 설정된 값입니다.
escape
이스케이프 문자(최대 1바이트 문자). 기본값은 백슬래시(\) 또는 SplFileObject::setCsvControl()을 사용하여 설정된 값입니다. 빈 문자열("")은 독점 이스케이프 메커니즘을 비활성화합니다.

참고: 일반적으로 enclosure 문자는 두 배로 필드 내부에서 이스케이프됩니다. 그러나 escape 문자를 대안으로 사용할 수 있습니다. 따라서 기본 매개변수 값 ""\"의 경우 동일한 의미를 갖습니다. enclosure 문자를 이스케이프하는 것을 제외하고 escape 문자는 특별한 의미가 없습니다.


반환 값

읽은 필드를 포함하는 인덱스 배열을 반환하거나 오류가 발생하면 false를 반환합니다.

메모: CSV 파일의 빈 줄은 단일 null 필드로 구성된 배열로 반환되고 SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE를 사용하지 않는 경우, 이 경우 빈 줄은 건너뜁니다.


변경 로그

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

Examples

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

                  
<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
    var_dump($file->fgetcsv());
}
?>
                  
                

예제 #2 SplFileObject::READ_CSV 예제

                  
<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    list($animal, $class, $legs) = $row;
    printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>
                  
                

Animals.csv의 내용

crocodile,reptile,4
dolphin,mammal,0
duck,bird,2
koala,mammal,4
salmon,fish,0
                

위의 예는 다음과 유사한 결과를 출력합니다.

A crocodile is a reptile with 4 legs
A dolphin is a mammal with 0 legs
A duck is a bird with 2 legs
A koala is a mammal with 4 legs
A salmon is a fish with 0 legs
                

기타