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 を返します。

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

エラー / 例外

delimiterenclosure が一文字でない場合は 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 フィールドとして処理する