fputcsv

関数の概要

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フォーマットに対応できます。実務でもデータのエクスポートや連携などで幅広く役立つ関数なので、基本的な使い方を押さえておくことをおすすめします。