📜  PHP | SplFileObject fputcsv()函数(1)

📅  最后修改于: 2023-12-03 15:03:39.609000             🧑  作者: Mango

PHP | SplFileObject fputcsv()函数

简介

SplFileObject fputcsv()函数是用于将一个数组格式的字符串逗号分隔(CSV)写入一个打开的文件中的函数。它可以帮助我们以CSV的格式写入文件,方便后续操作。

语法
public int SplFileObject::fputcsv(array $fields, string $delimiter = ",", string $enclosure = "\"", string $escape = "\\")

参数说明:

  • fields:包含要写入文件的数据的数组
  • delimiter:可选参数,用于分隔字段的字符,默认是逗号。
  • enclosure:可选参数,用于包裹字段的字符,默认是双引号。
  • escape:可选参数,用于在字符串中转义引号的字符,默认是反斜杠。

返回值:

成功时返回写入文件的字节数,失败时返回false。

例子

下面是一个简单的例子,演示了如何使用fputcsv()函数建立一个包含数据的CSV文件。

<?php
$file = new SplFileObject('test.csv', 'w');
$data = [['John', 'Doe'], ['Jane', 'Doe'], ['David', 'Smith']];

foreach ($data as $line) {
   $file->fputcsv($line);
}

$file = null;
echo 'CSV file created successfully';
?>

在上面的例子中,我们首先创建了一个名为test.csv的新文件,并使用‘w’参数打开它以写入数据。

接下来,我们创建并定义一个包含我们要写入文件的数据的数组,此处数据包含了三个人的名字和姓氏。

然后,我们使用foreach循环依次将该数组的每一行写入到CSV文件中,使用fputcsv()函数将行以CSV格式写入文件中。

最后,我们将文件设置为null值并输出CSV文件创建成功的消息。

注意事项
  • 如果我们需要编写UTF-8编码的CSV文件,则需要将$delimiter和$enclosure参数设置为字符,而不是字符串。例如:$delimiter = ',',$enclosure = '”'。
  • 如果用于提供数据的数组是由数据库查询结果而来的,则需要确保循环中的每个字段都经过了正确的转义和过滤,以防止SQL注入攻击。
  • 如果使用CSV文件涉及中文字符,则需要指定文件的编码方式,以避免乱码问题。