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
를 생성하고 헤더 행을 쓴 다음 두 데이터 행을 씁니다.