PHP:
CSV와 함께 작업하기

방법:

PHP는 CSV 파일을 다루기 위한 내장 함수를 제공하여, 제3자 라이브러리가 필요 없이 이러한 파일을 읽고 쓰는 것을 간단하게 만들어줍니다. 시작하기 위한 예제들은 다음과 같습니다:

CSV 파일 읽기

fopen()과 함께 fgetcsv()를 사용하여 CSV 파일을 열고 그 내용을 읽을 수 있습니다:

<?php
$filename = 'data.csv';
$handle = fopen($filename, "r");
if ($handle !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "라인의 필드 수: $num\n";
        for ($c = 0; $c < $num; $c++) {
            echo $data[$c] . "\n";
        }
    }
    fclose($handle);
}
?>

이 스크립트는 각 라인의 필드 수와 각 필드의 내용을 출력합니다.

CSV 파일 쓰기

fopen()을 쓰기 모드(w)로 사용하고, fputcsv()을 사용하여 CSV 파일에 쓸 수 있습니다:

<?php
$list = [
    ['ID', '이름', '이메일'],
    [1, 'John Doe', '[email protected]'],
    [2, 'Jane Doe', '[email protected]']
];

$handle = fopen('users.csv', 'w');

foreach ($list as $row) {
    fputcsv($handle, $row);
}

fclose($handle);
?>

이 스크립트는 users.csv라는 파일을 생성하고 헤더와 두 개의 데이터 행을 그 안에 씁니다.

라이브러리 사용하기: League\Csv

보다 고급 CSV 처리를 위해서, League\Csv 라이브러리는 강력한 기능 세트를 제공합니다. Composer를 통해 설치한 후 (composer require league/csv), CSV 데이터를 더 유연하게 읽고 쓸 수 있습니다.

League\Csv로 읽기

<?php
require 'vendor/autoload.php';

use League\Csv\Reader;

$csv = Reader::createFromPath('data.csv', 'r');
$csv->setHeaderOffset(0); // 첫 번째 행을 헤더로 사용하려면 설정

$results = $csv->getRecords();
foreach ($results as $row) {
    print_r($row);
}
?>

이 스크립트는 data.csv를 읽고, 첫 번째 행을 열 헤더로 취급하여 각 행을 연관 배열로 출력합니다.

League\Csv로 쓰기

<?php
require 'vendor/autoload.php';

use League\Csv\Writer;

$csv = Writer::createFromPath('users_new.csv', 'w+');

$csv->insertOne(['ID', '이름', '이메일']);
$csv->insertAll([
    [3, 'Alex Doe', '[email protected]'],
    [4, 'Anna Smith', '[email protected]']
]);

echo "users_new.csv에 성공적으로 쓰였습니다.";
?>

이는 users_new.csv를 생성하고 헤더 행을 쓴 다음 두 데이터 행을 씁니다.