fputcsv
(PHP 5 >= 5.1.0, PHP 7)
fputcsv — 行を CSV 形式にフォーマットし、ファイルポインタに書き込む
説明
fputcsv
( resource $handle
, array $fields
[, string $delimiter
= ","
[, string $enclosure
= '"'
[, string $escape_char
= "\\"
]]] ) : int|false
fputcsv() は、行(fields
配列として渡されたもの)を CSV としてフォーマットし、それを
handle
で指定したファイルに書き込みます
(いちばん最後に改行を追加します)。
パラメータ
handle
- ファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた (そしてまだ fclose() でクローズされていない) ファイルを指している必要があります。
fields
- 文字列の配列。
delimiter
- オプションの
delimiter
はフィールド区切り文字 (一文字だけ) を指定します。 enclosure
- オプションの
enclosure
はフィールドを囲む文字 (一文字だけ) を指定します。 escape_char
- オプションの
escape_char
は、エスケープ文字 (最大で一文字) を指定します。 空文字(""
) を指定すると、プロプライエタリなエスケープ機構が無効になります。
注意:
enclosure
がフィールド内に含まれる場合は、同じ文字を二度続けることでエスケープします。 ただし、その直前にescape_char
がある場合は別です。
返り値
書き込んだ文字列の長さを返します。失敗した場合に false
を返します。
変更履歴
バージョン | 説明 |
---|---|
7.4.0 | escape_char パラメータが、
プロプライエタリなエスケープ機構を無効にするために空文字列を受け入れるようになりました。 |
5.5.4 | escape_char パラメータが追加されました。
|
例
例1 fputcsv() の例
<?php$list = array ( array('aaa', 'bbb', 'ccc', 'dddd'), array('123', '456', '789'), array('"aaa"', '"bbb"'));$fp = fopen('file.csv', 'w');foreach ($list as $fields) { fputcsv($fp, $fields);}fclose($fp);?>
上の例が書き出す file.csv
の内容は、このようになります。
aaa,bbb,ccc,dddd 123,456,789 """aaa""","""bbb"""
注意
注意:
マッキントッシュコンピュータ上で作成されたファイルを読み込む際に、
PHP
が行末を認識できないという問題が発生した場合、 実行時の設定オプションauto_detect_line_endings を有効にする必要が生じるかもしれません。