SplFileObject::fputcsv

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

SplFileObject::fputcsv将字段数组写入文件作为 CSV 行

描述

public SplFileObject::fputcsv(
    array $fields,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\",
    string $eol = "\n"
): int|false

fields 数组写入文件作为 CSV 行。

参数

fields

一个值数组。

separator

可选的 separator 参数设置字段分隔符(仅一个单字节字符)。

enclosure

可选的 enclosure 参数设置字段包围符(仅一个单字节字符)。

escape

可选的 escape 参数设置转义字符(最多一个单字节字符)。空字符串 ("") 将禁用专有转义机制。

eol

可选的 eol 参数设置自定义换行符序列。

注意:

如果 enclosure 字符包含在字段中,它将通过加倍进行转义,除非它紧接在 escape 之前。

返回值

返回写入字符串的长度,或在失败时返回 false

如果 separatorenclosure 参数不是单个字符,则返回 false,并且不会将 CSV 行写入文件。

错误/异常

如果 separatorenclosure 参数不是单个字符,则会发出 E_WARNING 级别的错误。

变更日志

版本 描述
8.1.0 添加了可选的 eol 参数。
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"""

参见

添加注释

用户贡献的注释 1 个注释

sergiy dot sokolenko at gmail dot com
12 年前
此方法在 PHP 5.4 中可用,它只是 php.net/fputcsv 的包装器。
To Top