如何將 PHP 陣列轉換為帶有標題的格式正確的 CSV 檔案?

Barbara Streisand
發布: 2024-10-19 18:58:30
原創
281 人瀏覽過

How to Convert a PHP Array to a Well-Formatted CSV File with Headers?

PHP 陣列轉換為 CSV:簡化的解

在 PHP 中將陣列轉換為 CSV 檔案可能會很痛苦。如果您一直在努力產生格式正確的 CSV,本文將提供更好的解決方案。

問題:單行CSV 和無標題

考慮以下程式碼:

<code class="php">$prods = [1, 2, 3];

foreach ($prods as $prod) {
    $sql = "SELECT * FROM products WHERE id = '$prod'";
    $result = $mysqli->query($sql);
    $info = $result->fetch_array(); 
}

// ... rest of the code</code>
登入後複製

此程式碼可能會產生一個長行的CSV 文件,而不是帶有標題和換行符的所需格式。

解決方案:使用fputcsv()

要解決此問題,請將寫入CSV 檔案的程式碼替換為以下內容:

<code class="php">$output = fopen("php://output",'w') or die("Can't open php://output");
header("Content-Type:application/csv"); 
header("Content-Disposition:attachment;filename=pressurecsv.csv"); 
fputcsv($output, array('id','name','description'));
foreach($prod as $product) {
    fputcsv($output, $product);
}
fclose($output) or die("Can't close php://output");</code>
登入後複製

fputcsv() 函數自動處理轉義、欄位分隔符號和行結尾,確保CSV 格式正確.

附加說明

  • 使用fopen('php://output', 'w') 而不是硬編碼檔名在記憶體中創建CSV。
  • 在 header() 中為 CSV 下載設定適當的標題。
  • 使用 fputcsv() 寫入 CSV 的標題行和後續行。
  • 最後關閉檔案使用 fclose()。

以上是如何將 PHP 陣列轉換為帶有標題的格式正確的 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!