fputcsv
(PHP 5 >= 5.1.0, PHP 7)
fputcsv — 行を CSV 形式にフォーマットし、ファイルポインタに書き込む
説明
$handle
, array $fields
[, string $delimiter = ","
[, string $enclosure = '"'
[, string $escape_char = "\\"
]]] ) : int
fputcsv() は、行(fields
配列として渡されたもの)を CSV としてフォーマットし、それを
handle で指定したファイルに書き込みます
(いちばん最後に改行を追加します)。
パラメータ
-
handle -
ファイルポインタは、有効なファイルポインタである必要があり、 fopen() または fsockopen() で正常にオープンされた (そしてまだ fclose() でクローズされていない) ファイルを指している必要があります。
-
fields -
文字列の配列。
-
delimiter -
オプションの
delimiterはフィールド区切り文字 (一文字だけ) を指定します。 -
enclosure -
オプションの
enclosureはフィールドを囲む文字 (一文字だけ) を指定します。 -
escape_char -
オプションの
escape_charは、エスケープ文字 (一文字だけ) を指定します。
注意:
enclosureがフィールド内に含まれる場合は、同じ文字を二度続けることでエスケープします。 ただし、その直前にescape_charがある場合は別です。
返り値
書き込んだ文字列の長さを返します。失敗した場合に FALSE を返します。
変更履歴
| バージョン | 説明 |
|---|---|
| 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 を有効にする必要が生じるかもしれません。