関数 fgetcsv

関数 fgetcsv はファイルから行を読み取り、CSV 形式のフィールドに解析します。最初のパラメータは開かれたファイルへのポインタ、2番目は行の最大長、3番目はフィールド区切り文字(デフォルトはカンマ)、4番目は囲み文字(デフォルトはダブルクォーテーション)、5番目はエスケープ文字を受け取ります。

構文

phpfgetcsv(
  resource $handle,
  int $length = 0,
  string $separator = ",",
  string $enclosure = "\"",
  string $escape = "\"
);

例

CSV ファイルを行ごとに読み込み、内容を表示します:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file)) !== false) {
    print_r($row);
  }
  fclose($file);
?>

内容が "a,b,c" のファイルに対するコード実行結果:

php['a', 'b', 'c']

例

行の最大長とカスタム区切り文字を指定して CSV を読み取る:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 1000, ';')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

内容が "a;b;c" のファイルに対するコード実行結果:

php['a', 'b', 'c']

例

クォートとエスケープを使用した CSV の読み取り:

php<?php
  $file = fopen('data.csv', 'r');
  while (($row = fgetcsv($file, 0, ',', '"', '\')) !== false) {
    print_r($row);
  }
  fclose($file);
?>

内容が '"a,b",c,"d\"e"' のファイルに対するコード実行結果:

php['a,b', 'c', 'd"e']

関連項目

  • 関数 fputcsv,
    CSV にデータを書き込む関数
  • 関数 fgets,
    ファイルから行を読み取る関数