Php/docs/splfileobject.fputcsv

提供:Dev Guides
< Php
移動先:案内検索

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7)

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


説明

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

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


パラメータ

fields
値の配列。
delimiter
オプションで指定する、フィールドの区切り文字 (一文字のみ)。
enclosure
オプションで指定する。フィールドの囲み文字 (一文字のみ)。
escape
オプションの escape は、エスケープ文字 (最大で一文字) を指定します。 空文字列 ("") を与えると、プロプライエタリなエスケープ機構を無効にします。

注意:

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

返り値

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

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


エラー / 例外

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


変更履歴

バージョン 説明
7.4.0 escape パラメータは空文字列を受け入れるようになりました。

この場合、プロプライエタリなエスケープ機構が無効になります。

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 フィールドとして処理する