PHP 文件系统 fputcsv() 函数



PHP 文件系统 fputcsv() 函数用于将一行格式化为 CSV 并将其写入打开的文件。它用于将数组作为逗号分隔行写入文件指针。它可以返回已写入字符串的长度或在失败时返回 false。

语法

以下是 PHP 文件系统 fputcsv() 函数使用的语法:

int fputcsv ( resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape_char = "\\" ]]] )

参数

以下是 fputcsv() 函数的必需和可选参数:

序号 参数和描述
1

handle(必需)

它是用于写入 CSV 数据的文件指针资源。

2

fields(必需)

您要作为 CSV 行写入的字段数组。

3

delimiter(必需)

分隔 CSV 行中每个字段的字符。

4

enclosure(必需)

用于封装每个字段的字符。

5

escape_char(必需)

用于转义字段中特殊字符的字符。

返回值

它返回一个整数,表示已写入字符串的长度,或者在失败时返回 FALSE。

PHP 版本

fputcsv() 函数最初作为 PHP 5.1.0 的核心一部分引入,并且与 PHP 7、PHP 8 兼容良好。

示例

在下面的示例中,我们将看到 PHP 文件系统 fputcsv() 函数的基本用法。请查看以下代码:

<?php
   $list = array (
      array('aaa', 'bbb', 'ccc', 'dddd'),
      array('123', '456', '789'),
      array('"aaa"', '"bbb"')   
   );

   $fp = fopen("/PhpProject/data.csv", "w");

   foreach($list as $fields) {
      fputcsv($fp, $fields);
   }
   echo "The list data has been inserted successfully to .csv file";

   fclose($fp);
?>

输出

查看上述 PHP 代码的输出:

The list data has been inserted successfully to .csv file

示例

接下来的 PHP 代码将使用新数据更新现有的 CSV 文件。有时,我们可能需要使用新信息更新旧的 CSV 文件,而无需删除现有数据。在这种情况下,fputcsv() 函数很有用。

<?php
   // Open the file for appending
   $file = fopen('data.csv', 'a');

   // New data to be appended
   $newData = ['Ajay', 'Bhide', '[email protected]'];

   // Append the new data to the CSV file
   fputcsv($file, $newData);

   // Close the file
   fclose($file);
?> 

输出

这将产生以下结果:

First Name,Last Name,Email
Smita,Dev,[email protected]
Jaya,Sharma,[email protected]
Ajay,Bhide,[email protected]

示例

现在我们将尝试在数据库查询的帮助下写入一些 CSV 数据。有时,将数据库查询中的数据导出到 CSV 文件可能很重要。因此,在这种情况下,我们可以使用此方法。

<?php
   // Connect to the database
   $conn = new mysqli('localhost', 'username', 'password', 'database');

   // Open a file for writing
   $file = fopen('data.csv', 'w');

   // Perform a database query
   $result = $conn->query('SELECT * FROM users');

   // Loop over query results and write to CSV file
   while ($row = $result->fetch_assoc()) {
      fputcsv($file, $row);
   }

   // Close the database connection
   $conn->close();

   // Close the file
   fclose($file);
?> 

输出

这将生成以下结果:

First Name,Last Name,Email
Smita,Dev,[email protected]
Jaya,Sharma,[email protected]
Ajay,Bhide,[email protected]

示例

假设您的数据包含特殊字符,在这种情况下,您可能需要在写入 CSV 文件时正确处理它们。因此,您可以使用此方法来仔细处理它们。

因此,fputcsv() 函数处理此类特殊字符,将字段括在双引号中,并根据需要转义任何包含的双引号。

<?php
   // Open the file for writing
   $file = fopen('data_special_chars.csv', 'w');

   // Data with special characters
   $data = [
      ['Product', 'Description'],
      ['Laptop', '24" Display, 8GB RAM'],
      ['Monitor', '56" Full HD, HDMI/VGA'],
   ];

   // Write data to the CSV file
   foreach ($data as $fields) {
      fputcsv($file, $fields);
   }

   // Close the file
   fclose($file);
?> 

输出

这将导致以下结果:

Product,Description
Laptop,"15"" Display, 8GB RAM"
Monitor,"23"" Full HD, HDMI/VGA"

总结

PHP 的 fputcsv() 函数可以将数组作为逗号分隔行写入文件指针。该函数返回已写入字符串的长度(整数),或者在失败时返回 false。如果发生写入错误或给出错误的文件句柄,它将返回 false。

php_function_reference.htm
广告