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', 'ab@example.com'];

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

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

輸出

這將產生以下結果:

First Name,Last Name,Email
Smita,Dev,sd@example.com
Jaya,Sharma,js@example.com
Ajay,Bhide,ab@example.com

示例

現在我們將嘗試在資料庫查詢的幫助下寫入一些 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,sd@example.com
Jaya,Sharma,js@example.com
Ajay,Bhide,ab@example.com

示例

假設您的資料包含特殊字元,在這種情況下,您可能需要在寫入 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
廣告