フィールドの配列を CSV の行として書き出す

# SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7)

SplFileObject::fputcsv — フィールドの配列を CSV の行として書き出す

### 説明

public SplFileObject::fputcsv ( array `$fields` [, string `$delimiter` = "," [, string `$enclosure` = '"' [, string `$escape` = "\\" ]]] ) : int

`fields` の配列を、CSV の行としてファイルに書き出します。

### パラメータ

`fields`

  値の配列。

`delimiter`

  オプションで指定する、フィールドの区切り文字 (一文字のみ)。

`enclosure`

  オプションで指定する。フィールドの囲み文字 (一文字のみ)。

`escape`

  オプションの `escape` は、エスケープ文字 (一文字だけ) を指定します。

> 注意:

> `enclosure` がフィールド内に含まれる場合は、同じ文字を二度続けることでエスケープします。 ただし、その直前に `escape_char` がある場合は別です。

### 返り値

書き出した文字列の長さを返します。失敗した場合に `FALSE` を返します。

`delimiter` や `enclosure` が一文字でない場合は `FALSE` を返し、何もファイルに書き出しません。

### エラー / 例外

`delimiter` や `enclosure` が一文字でない場合は `E_WARNING` レベルのエラーが発生します。

### 変更履歴

バージョン | 説明
--- | ---
5.5.21, 5.6.5 | `escape` パラメータが追加されました。

### 例

例1 SplFileObject::fputcsv() の例

`<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$file = new SplFileObject('file.csv', 'w');
foreach ($list as $fields) {
$file->fputcsv($fields);
}
?>`

上の例は、次の内容をファイル file.csv に書き出します。

    aaa,bbb,ccc,dddd
    123,456,789
    """aaa""","""bbb"""

### 参考

- fputcsv() - 行を CSV 形式にフォーマットし、ファイルポインタに書き込む
- SplFileObject::fgetcsv() - ファイルから行を取り出し CSV フィールドとして処理する