[php]fgetcsv

PHP의 fgetcsv 함수

fgetcsv 함수는 파일 포인터에서 한 줄을 읽어와서 CSV(Comma Separated Values) 형식으로 구분된 데이터를 배열로 반환합니다. CSV 파일을 처리하는데 유용하며, 각 열의 데이터는 쉼표(,)로 구분됩니다. 읽어온 데이터를 배열로 쉽게 처리할 수 있습니다.

fgetcsv 함수의 사용 예시:

$filename = 'data.csv';
$file = fopen($filename, 'r');

if (!$file) {
    die("Error opening file");
}

while (($data = fgetcsv($file)) !== false) {
    // 데이터 처리
    print_r($data);
}

fclose($file);

다른 함수와 함께 사용하는 예시:

  1. feof 함수와 함께 사용하기 (파일의 끝까지 CSV 데이터 읽기):
$filename = 'data.csv';
$file = fopen($filename, 'r');

if (!$file) {
    die("Error opening file");
}

while (!feof($file)) {
    $data = fgetcsv($file);
    // 데이터 처리
    print_r($data);
}

fclose($file);
  1. str_getcsv 함수와 함께 사용하기 (문자열에서 CSV 데이터 읽기):
$csvString = "John,Doe,30,New York";
$data = str_getcsv($csvString);
// 데이터 처리
print_r($data);

조건문과 반복문과 함께 사용하는 예시:

$filename = 'data.csv';
$file = fopen($filename, 'r');

if (!$file) {
    die("Error opening file");
}

$targetColumnIndex = 2;
$targetValue = "30";

while (($data = fgetcsv($file)) !== false) {
    // 특정 열의 데이터와 조건문 비교
    if ($data[$targetColumnIndex] === $targetValue) {
        // 조건을 만족하는 경우 데이터 처리
        print_r($data);
    }
}

fclose($file);

성능 향상을 위한 팁:

  1. 대용량 CSV 파일을 처리할 때는 fgetcsv 함수가 파일을 한 줄씩 읽기 때문에 메모리 사용량이 증가할 수 있습니다. 이 경우, SplFileObject를 사용하여 메모리 사용을 최적화할 수 있습니다.

  2. CSV 파일의 인코딩에 주의해야 합니다. 파일이 UTF-8 또는 다른 인코딩으로 작성되어 있는지 확인하고, 필요한 경우 mb_convert_encoding 함수를 사용하여 데이터를 변환할 수 있습니다.

요약:

fgetcsv 함수는 파일 포인터에서 한 줄을 읽어와서 CSV 형식의 데이터를 배열로 반환하는데 사용됩니다. feof 함수와 함께 사용하여 파일의 끝까지 데이터를 읽거나, str_getcsv 함수와 함께 사용하여 문자열에서 CSV 데이터를 읽을 수 있습니다. 조건문과 반복문과 함께 사용하여 특정 조건에 맞는 데이터를 처리하는데 유용합니다. 성능 향상을 위해 SplFileObject를 고려하거나, CSV 파일의 인코딩에 주의하여 처리해야 합니다.


게시됨

카테고리

,

작성자