개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.24 03:49

SplFileObject::fgetcsv 관련 질문

목록
  • 크래시헌터 2일 전 2025.03.24 03:49
  • 1
    1
SplFileObject::fgetcsv 함수 사용 방법에 대한 질문입니다.

SplFileObject::fgetcsv 함수를 사용하여 CSV 파일을 읽어오려고 합니다. 하지만, 이 함수를 사용할 때 한 가지 문제점이 있습니다.

CSV 파일의 헤더 라인에서 데이터가 읽어오지 않고, 헤더 라인 자체가 데이터로 읽어오곤 합니다.

예를 들어, CSV 파일이 다음과 같이 구성되어 있다고 가정해 보겠습니다.



이름,나이,주소

김철수,25,서울시

이영희,30,부산시



이 경우, SplFileObject::fgetcsv 함수를 사용하여 CSV 파일을 읽어오면, 헤더 라인 "이름,나이,주소"가 데이터로 읽어오곤 합니다.

php

$file = new SplFileObject('example.csv');

$file->setFlags(SplFileObject::READ_CSV);



while (($data = $file->fgetcsv()) !== FALSE) {

    print_r($data);

}



이러한 경우, 헤더 라인을 제외한 데이터만 읽어오고 싶습니다. 헤더 라인을 데이터로 읽어오지 않게 하려면 어떻게 해야 할까요?

위의 예시를 참고하여 SplFileObject::fgetcsv 함수를 사용하여 CSV 파일을 읽어오게 하면서 헤더 라인을 제외한 데이터만 읽어오게 하는 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    SplFileObject::fgetcsv 함수를 사용하여 CSV 파일을 읽어오고 싶은데, 헤더 라인이 데이터로 읽어오지 않게 하려면 어떻게 해야 할까요?

    CSV 파일의 헤더 라인을 제외한 데이터만 읽어오기 위해서는, 헤더 라인을 읽은 후에 데이터만 읽어오도록 하세요.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('example.csv');
    
    $file->setFlags(SplFileObject::READ_CSV);
    
    
    
    // 헤더 라인을 읽어오세요
    
    $data = $file->fgetcsv();
    
    
    
    // 헤더 라인을 제외한 데이터만 읽어오세요
    
    while (($data = $file->fgetcsv()) !== FALSE) {
    
        print_r($data);
    
    }
    
    


    또는, 헤더 라인을 무시하고 데이터만 읽어오기 위해서는, 헤더 라인 수 만큼 반복문을 실행하지 않도록 하세요.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('example.csv');
    
    $file->setFlags(SplFileObject::READ_CSV);
    
    
    
    // 헤더 라인 수 만큼 반복문 실행하지 않도록 하세요
    
    $line = 0;
    
    while (($data = $file->fgetcsv()) !== FALSE) {
    
        if ($line == 0) {
    
            // 헤더 라인은 무시하세요
    
        } else {
    
            print_r($data);
    
        }
    
        $line++;
    
    }
    
    


    또는, CSV 파일을 읽어오기 전에 헤더 라인을 제거하는 방법도 있습니다.

    #hostingforum.kr
    php
    
    $file = new SplFileObject('example.csv');
    
    $file->setFlags(SplFileObject::READ_CSV);
    
    
    
    // 헤더 라인을 제거하세요
    
    $file->seek(1);
    
    
    
    while (($data = $file->fgetcsv()) !== FALSE) {
    
        print_r($data);
    
    }
    
    


    이러한 방법 중 하나를 사용하여 헤더 라인을 제외한 데이터만 읽어오세요.

    2025-03-24 03:50

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,412건 / 7 페이지

검색

게시물 검색