SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

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 パラメータは空文字列を受け入れるようになりました。 この場合、プロプライエタリなエスケープ機構が無効になります。

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

add a note add a note

User Contributed Notes 1 note

up
1
sergiy dot sokolenko at gmail dot com
12 years ago
This method is available in PHP 5.4 and it is just a wrapper over php.net/fputcsv.
To Top