프로그래밍 언어/PHP

CSV 파일 읽기

· 코딩마이데이

CSV(Comma-Separated Value) 파일은 말 그대로 각각의 데이터가 콤마(,)로 구분되어 있는 텍스트 파일을 의미합니다.

 

다음의 CSV 파일(data.csv)에 저장된 국어, 영어, 수학 성적 데이터를 읽어서 합계와 평균을 구하는 프로그램에 대해 알아봅시다.

※ data.csv에 파일은 ex5-24.php과 같은 폴더에 존재하므로 가정합니다.

 

■ data.csv 파일

국어,영어,수학
83,94,95
93,87,88
73,98,97
85,93,82
73,95,98

 

CSV 파일의 첫 번째 줄에는 위 data.csv 파일에서와 같이 각 열의 제목이 저장됩니다. 그리고 다음 줄부터 콤마(,)로 구분된 데이터들이 들어갑니다.

 

예제 5-24 CSV 파일 읽기

<?php
    $file = fopen("data.csv", "r"); // 02
    $header = fgetcsv($file); // 03
    $num = count($header); // 04
    echo "<h3>5명 학생의 ".$num."과목 합계/평균 구하기</h3>";

    while(!feof($file)) {
        $sum = 0; // 08
        $line = fgetcsv($file); // 09
        foreach ($line as $v) { // 10
            $sum += $v;
        } // 12
        $avg = round($sum/3, 2); // 13
        echo "합계: ".$sum.", 평균: ".$avg."<br>"; // 14
    }

    fclose($file); // 17
?>

ex5-24.php의 실행 결과

 

 

02 fopen() 함수로 data.csv 파일을 읽기 모드로 열어 $file에 저장합니다.

 

03 fgetcsv() 함수는 CSV 파일에서 한 줄의 데이터를 배열로 읽어옵니다. 3행은 fgetcsv($file)로 data.csv 파일에서 한 줄의 데이터를 가져와 배열 $header에 저장합니다.

 

04 cout($header)는 $header 배열 요소의 개수, 즉 과목의 수인 3의 값을 가집니다.

 

08 한 학생 성정의 합계 $sum을 0으로 초기화합니다.

 

09 fgetcsv($file)로 한 줄의 성적 데이터를 읽어 $line 배열에 저장합니다.

 

10~12 한 학생에 대한 세 과목 성적 합계 $sum을 구합니다.

 

13 $sum/3은 과목 성적의 평균 값을 의미합니다. round($sum/3, 2)을 이용하여 소수점 둘째 자리(셋째 자리에서 반올림)까지 값을 구하여 $avg에 저장합니다.

 

14 echo문을 이용하여 실행 결과에서와 같이 합계와 평균을 출력합니다.

 

17 fclose()을 이용하여$file, 즉 열었던 data.csv 파일을 닫습니다.

 

 

'프로그래밍 언어 > PHP' 카테고리의 다른 글

쿠키 설정하기  (0) 2026.06.07
텍스트 파일 쓰기  (0) 2026.06.06
텍스트 파일 읽기  (0) 2026.06.04
시간 차 계산하기  (0) 2026.06.03
일시 테임스템프 표시하기  (0) 2026.05.31