関数の概要
PHPの fputcsv 関数は、配列の内容をCSV形式でファイルに書き込むために使われます。CSVとは「Comma-Separated Values」の略で、カンマ区切りのテキストデータです。主にデータのエクスポートや保存、他のシステムとのデータ連携に便利です。
パラメータの説明
resource $stream— 書き込み対象のファイルポインタ。fopenなどで開いたファイルリソースを指定します。array $fields— 書き込む配列。各配列の要素が1行のCSVのフィールドに対応します。string $delimiter— (省略可)フィールドの区切り文字。デフォルトはカンマ(,)です。string $enclosure— (省略可)フィールドを囲む文字。デフォルトはダブルクオート(")です。string $escape— (PHP 7.4以降、省略可)エスケープ文字。デフォルトはバックスラッシュ()です。
戻り値
ファイルに書き込んだバイト数が返されます。書き込みに失敗した場合は false を返します。
使用例
基本的な使い方
<?php
$file = fopen('data.csv', 'w');
$data = ['山田太郎', '30', '東京'];
fputcsv($file, $data);
fclose($file);
?>
上記コードは「data.csv」というファイルを開き、配列の内容(氏名、年齢、住所)を書き込んでからファイルを閉じます。
区切り文字をセミコロンに変更する
<?php
$file = fopen('data.csv', 'w');
$data = ['山田太郎', '30', '東京'];
fputcsv($file, $data, ';');
fclose($file);
?>
デフォルトのカンマではなく、セミコロン(;)を区切り文字として使う例です。欧州などでよく使われます。
複数行を一括で書き込む
<?php
$file = fopen('data.csv', 'w');
$rows = [
['名前', '年齢', '住所'],
['山田太郎', '30', '東京'],
['佐藤花子', '25', '大阪'],
];
foreach ($rows as $row) {
fputcsv($file, $row);
}
fclose($file);
?>
配列の配列をループで回し、複数行をCSVファイルに書き込む実務的な例です。
関連する関数
fopen— ファイルを開くfclose— ファイルを閉じるfgetcsv— CSV形式の1行を読み込み、配列として返すfwrite— ファイルに文字列を書き込む
まとめ
fputcsv はPHPで配列データを簡単にCSV形式でファイルに書き込むための関数です。区切り文字や囲み文字を変更できるため、様々なCSVフォーマットに対応できます。実務でもデータのエクスポートや連携などで幅広く役立つ関数なので、基本的な使い方を押さえておくことをおすすめします。
