CSV 파일 처리 방법

데이터를 이동하거나 백업할 때 XML을 많이 사용하고 있습니다. 데이터를 XML 형식으로 저장하게 되면 직관성, 호환성, 확장성 등을 높일 수 있습니다. 반면 경우에 따라서는 XML 형식으로 저장하지 않아도 될 만큼 구조가 간단하거나 데이터가 적을 수도 있습니다. . 또한 데이터를 빠르게 처리해야 하는 경우에도 XML은 좋지 않은 선택일 수 있습니다.

  1: <numbers>
  2:   <number>1</number>
  3:   <number>2</number>
  4:   <number>3</number>
  5: </numbers>

위 코드는 1,2,3 값을 저장하기 위해 numbers 와 number 요소를 구성하고 있습니다. 이런 값이라면 간단하게 저장해도 될 것 같습니다.

1,2,3

이처럼 콤마(,)로 데이터 값을 구분하는 형식을 CSV(Comma-Separated Values)라고 합니다. 예를 들어 아래와 같은 데이터는 XML 이 아닌 CSV 형식으로 바꿔 보겠습니다.

이름 나이 성별
홍길동 18 남자
손담비 22 여자
이상무 28 남자
 
  1: 홍길동,18,남자
  2: 손담비,22,여자
  3: 이상무,28,남자

Array를 CSV 형식의 파일로 저장하기

PHP에서는 fputcsv( )를 사용해서 Array를 CSV 파일로 바로 저장할 수 있습니다.

  1: <?php
  2: $address_book = array(
  3:     array("Hong Gilong",18,"Male")
  4:     ,array("Son Dambi",22,"Female")
  5:     ,array("Lee Sangmoo",28,"Male")
  6: );
  7:
  8: print_r($address_book);
  9:
 10: $fp = fopen("address_book.csv","w") or die("Can't create file.");
 11:
 12: foreach($address_book as $line) {
 13:     if ( fputcsv($fp,$line) === false ) die("Can't write.");
 14: }
 15:
 16: fclose($fp);
 17: ?>
 18:
 19: 실행 결과 : address_book.cvs
 20: "Hong Gilong",18,Male
 21: "Son Dambi",22,Female
 22: "Lee Sangmoo",28,Male
 23: 

CSV 형식의 파일을 Array로 읽어오기

Array를 CSV 파일로 저장했으니 반대로 CSV 파일의 데이터를 Array로 읽어오는 방법을 알아보겠습니다. 이 기능도 PHP에서 fgetcsv( )를 사용해서 쉽게 구현할 수 있습니다.

  1: <?php
  2: $fp = fopen("address_book.csv","r");
  3:
  4: $address_book = array();
  5:
  6: while( $row = fgetcsv($fp) ) {
  7:     $address_book[] = $row;
  8: }
  9:
 10: print_r($address_book);
 11: ?>
 12:
 13: 실행결과 :
 14: Array
 15: (
 16:     [0] => Array
 17:     (
 18:         [0] => Hong Gilong
 19:         [1] => 18
 20:         [2] => Male
 21:     )
 22:     [1] => Array
 23:     (
 24:         [0] => Son Dambi
 25:         [1] => 22
 26:         [2] => Female
 27:     )
 28:     [2] => Array
 29:     (
 30:         [0] => Lee Sangmoo
 31:         [1] => 28
 32:         [2] => Male
 33:     )
 34: )

About the Author

ooti has written 46 stories on this site.

Write a Comment

Gravatars are small images that can show your personality. You can get your gravatar for free today!

Spam Protection by WP-SpamFree

Copyright © 2010 PHPK.org. All rights reserved.
Theme by Fitobochka and ComFi.com Phone Cards Company.