【PHP8.x】fgetcsv関数の使い方

作成日: 更新日:

『fgetcsv関数は…を実行する関数です』

fgetcsv関数は、fopen関数などによって開かれたファイルポインタから、CSV(Comma-Separated Values)形式のデータを1行ずつ読み込み、それを配列として解析する関数です。この関数は、CSVファイルの内容をプログラムで効率的に処理する際に広く利用されます。第一引数には、対象となる有効なファイルポインタを指定します。関数が呼び出されるたびに、ファイルポインタは次の行へと自動的に進みます。オプションの引数として、フィールドの区切り文字(デリミタ、デフォルトはカンマ)、フィールドを囲む文字(エンクロージャ、デフォルトはダブルクォーテーション)、そして読み込む行の最大長を指定することが可能です。正常に1行を読み込めた場合、各フィールドの値を要素として持つ配列を返します。ファイルの終端に達した場合や、読み込みエラーが発生した場合は false を返します。そのため、while ループと組み合わせて、ファイルの内容がなくなるまで繰り返し処理を行うのが一般的な使い方です。なお、PHP 8.0.0以降では、空行を読み込んだ場合は [null] という単一の null 値を含む配列が返されます。

基本的な使い方

構文(syntax)

fgetcsv(
    resource $stream,
    ?int $length = null,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\"
): array|false

引数(parameters)

resource $stream, ?int $length = null, string $separator = ',', string $enclosure = '"', string $escape = '\'

  • resource $stream: 読み込むCSVデータが含まれるファイルリソースを指定します。
  • ?int $length = null: 1行あたりに読み込む最大バイト数を指定します。省略すると、最大行長に制限はありません。
  • string $separator = ',': CSVの各フィールドを区切る文字を指定します。デフォルトはカンマ(,)です。
  • string $enclosure = '"': CSVのフィールドを囲む文字を指定します。デフォルトはダブルクォーテーション(")です。
  • string $escape = '\': $enclosure文字をエスケープするために使用される文字を指定します。デフォルトはバックスラッシュ()です。

戻り値(return)

array|false

fgetcsv関数は、ファイルポインタから1行を読み込み、CSV形式のデータを配列として返します。ファイルの終端に達したり、エラーが発生した場合はfalseを返します。

【PHP8.x】fgetcsv関数の使い方 | いっしー@Webエンジニア