Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】SplTempFileObject::fputcsv()メソッドの使い方

fputcsvメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

fputcsvメソッドは、SplTempFileObjectクラスのインスタンスに対して、配列のデータをCSV(Comma Separated Values)形式でファイルに書き込むことを実行するメソッドです。このメソッドは、指定された配列の各要素をCSVの1行として扱い、適切な区切り文字や囲み文字、エスケープ処理を自動的に適用しながら出力します。

具体的には、第一引数にCSVとして書き出したいデータの配列を指定します。この配列の各要素が、CSVファイルにおける一つのフィールド(列)に対応します。第二引数以降には、オプションとしてフィールド間の区切り文字、フィールドを囲む文字、そしてエスケープ文字を設定できます。これらの引数を省略した場合、デフォルト値としてそれぞれコンマ(,)、ダブルクォート(")、バックスラッシュ(\)が使用されます。

このメソッドは、書き込みが成功すると書き込まれたバイト数を整数で返します。何らかの原因で書き込みに失敗した場合はfalseが返されるため、戻り値を確認することで処理の成否を判断できます。fputcsvメソッドは、CSVの書式ルールに則って自動的に引用符の追加や特殊文字のエスケープ処理を行うため、手動でCSV文字列を構築する際に発生しがちな書式エラーを防ぎ、安全かつ効率的にデータをファイルに書き出すことができます。

特に、SplTempFileObjectは一時的なファイル操作に特化したオブジェクトであり、このfputcsvメソッドと組み合わせることで、システム内で生成したデータを一時的にCSV形式で保存し、その後の処理で利用するといったシナリオで非常に有用です。例えば、大量のデータをCSVとしてエクスポートする前の一時的な整形や、異なるアプリケーション間でのデータ連携のために一時ファイルを生成する場合などに、複雑なCSV書式を意識することなく、手軽にCSVデータを生成できるため、データ処理の幅が広がります。

構文(syntax)

1<?php
2
3$tempFile = new SplTempFileObject();
4$data = ['field1', 'field2', 'field3'];
5$tempFile->fputcsv($data);
6
7?>

引数(parameters)

array $fields, string $separator = ',', string $enclosure = '"', string $escape = '\', string $eol = ' '

  • array $fields: CSVファイルに書き込むフィールド(データ)を配列で指定します。
  • string $separator = ',': フィールドを区切る文字を指定します。デフォルトはカンマです。
  • string $enclosure = '"': フィールドを囲む文字を指定します。デフォルトはダブルクォーテーションです。
  • string $escape = '\': $enclosure 文字をエスケープ(無効化)するために使用する文字を指定します。デフォルトはバックスラッシュです。
  • string $eol = ' ': 行の終端を表す文字列を指定します。デフォルトは改行コードです。

戻り値(return)

int|false

書き込んだバイト数を返します。エラーが発生した場合はfalseを返します。

関連コンテンツ