PHP で CSV ファイルを解析する方法

Ralfh Bryan Perez 2023年1月3日
PHP で CSV ファイルを解析する方法

CSV はファイルの一種です。Comma Separated Values という意味です。Excel などのさまざまなソフトウェアでよく使用されます。これにより、データを表形式で保存し、.csv 拡張子を付けることができます。

PHP で CSV ファイルを解析するには、PHP に組み込まれている fopen()fgetcsv()、および fclose() 関数の組み合わせを使用して実行できます。

例:

/*
//sampleFile.csv
dog, cat, rat, fish
horse, cow, carabao
bird, rabbit, chicken
*/
$ctr = 1;
if (($file = fopen("sampleFile.csv", "r")) !== FALSE) {
  while (($record = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $total = count($record);
    echo "<p> $total fields in line $row: <br /></p>\n";
    $ctr++;
    for ($x = 0; $x < $ctr; $x++) {
        echo $record[$x] . "<br />\n";
    }
  }
  fclose($file);
}
//output:
/*
4 fields in line 1:

dog
cat
3 fields in line 2:

horse
cow
carabao
3 fields in line 3:

bird
rabbit
chicken
*/

上記の例では、次の関数を使用して sampleFile.csv のコンテンツを解析します。

fopen(Filename, Mode, Include_path, context)

この関数は、URL またはファイルを受け入れ、ファイル名で指定された名前付きリソースをストリームにバインドします。

パラメーター:

  • Filename(必須) - このパラメーターは、開くファイルまたは URL を指定します
  • Mode (必須) - これは、ファイルに必要なアクセスのタイプを表します。
  • Include_path (オプション) - このパラメーターを 1 に設定すると、include_path でファイルが検索されます。
  • context (オプション) - ファイルハンドルの内容を指定します。これは、ストリームの動作で更新できるオプションのセットです。

fgetcsv()

この関数は、開かれた CSV ファイルから行を解析します。

パラメーター:

  • File (必須)-このパラメーターは、1 行を返し、解析するために開いているファイルを指定します。
  • Length (PHP 5 以下ではオプションですが、PHP 5.1 以降では必須)-このパラメーターは行の最大長です。これは、ファイルの最も長い行よりも大きくなければなりません。このパラメーターが存在しない場合、長さに制限がないため、解析が遅くなります。
  • Separator (オプション)-このパラメーターはフィールドセパレーターであり、デフォルト値はコンマ-, です。
  • Enclosure (オプション)-このパラメーターはフィールドエンクロージャーで、デフォルト値は "です。
  • Escape (オプション)-このパラメータはエスケープ文字で、デフォルトは \\です。

fclose()

この関数は、開いているファイルポインターを閉じます。

パラメータ:

  • File (必須)-これは、閉じるファイルを指定します。
ファイルポインターは有効である必要があり、fopen() によって正常に開かれたファイルを指している必要があります。

関連記事 - PHP CSV