首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 使用 fputcsv() 將陣列輸出為 CSV 檔案

     編輯:PHP 綜合知識

fputcsv() 將陣列寫入開啟的檔案控制代碼,自動處理欄位包含逗號、雙引號、換行的跳脫,是產生標準 CSV 的正確方式。

基本語法

fputcsv(resource $stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): int|false

完整範例:銷售資料匯出

<?php
$sales = [
    ['east',  '2005-01-01', '2005-02-01', 12.54],
    ['west',  '2005-01-01', '2005-02-01', 546.33],
    ['south', '2005-01-01', '2005-02-01', 93.26],
    ['north', '2005-01-01', '2005-02-01', 945.21],
    ['All Regions', '--', '--', 1597.34],
];

$fh = fopen('file.csv', 'w');
foreach ($sales as $line) {
    if (fputcsv($fh, $line) === false) {
        die("CSV 寫入失敗");
    }
}
fclose($fh);
echo "CSV 匯出完成";
?>

產生的 CSV 內容

east,2005-01-01,2005-02-01,12.54
west,2005-01-01,2005-02-01,546.33
south,2005-01-01,2005-02-01,93.26
north,2005-01-01,2005-02-01,945.21
"All Regions",--,--,1597.34

常見參數調整

  • 分隔符:fputcsv($fh, $line, ';') (歐洲慣用)
  • 包圍字元:fputcsv($fh, $line, ',', "'")
  • BOM 加入:fwrite($fh, "\xEF\xBB\xBF") 在寫入前(Excel 相容)

記憶體優化:大量資料分批寫入

$stmt = $pdo->query("SELECT * FROM large_table");
$fh = fopen('export.csv', 'w');
fwrite($fh, "\xEF\xBB\xBF"); // UTF-8 BOM
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
    fputcsv($fh, $row);
}
fclose($fh);

切勿手動 implode(',', $row),必須用 fputcsv() 確保 RFC 4180 相容。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved