如何從 PHP 陣列下載 CSV 檔案?

Linda Hamilton
發布: 2024-11-08 16:57:02
原創
415 人瀏覽過

How to Download a CSV file from a PHP Array?

如何從PHP 腳本創建和下載CSV 文件

從PHP 數組創建和下載CSV 文件是一項有用的技術在網站上開發中。這是新手程式設計師的詳細指南:

建立CSV 檔案

  1. 循環遍歷數組:迭代數組中的元素PHP數組。
  2. 建立 CSV 行: 對於每個陣列元素,使用 fputcsv() 函數產生逗號分隔值 (CSV) 行。此函數以陣列元素和分隔符號(通常是逗號)作為參數。

範例:

$array = [
    ['fs_id' => '4c524d8abfc6ef3b201f489c', 'name' => 'restaurant', ...],
    // More array elements...
];

$delimiter = ',';

$csv = fopen('tmp.csv', 'w');

foreach ($array as $line) {
    fputcsv($csv, $line, $delimiter);
}
登入後複製

下載CSV 檔案

    下載CSV 檔案
  1. 頭:
  2. 若要讓瀏覽器提供「另存為」對話框,請設定指定檔案名稱及其類型為CSV 的HTTP 標頭。
header('Content-Disposition: attachment; filename="filename.csv"');
header('Content-Type: text/csv');
登入後複製
  1. 將 CSV 傳送到瀏覽器:
  2. 使用 fpassthru() 函數將產生的 CSV 行傳送到瀏覽器。
fseek($csv, 0); // Reset the file pointer to the start
fpassthru($csv);
登入後複製

將它們放在一起

以下函數結合了這兩個步驟,並允許您從數組下載CSV 檔案:
function array_to_csv_download($array, $filename = 'export.csv', $delimiter = ',') {
    // Set HTTP headers
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    header('Content-Type: text/csv');

    // Create a file pointer
    $csv = fopen('php://memory', 'w');

    // Loop through the array and create CSV lines
    foreach ($array as $line) {
        fputcsv($csv, $line, $delimiter);
    }

    // Send the generated CSV to the browser
    fpassthru($csv);
}
登入後複製

用法:

$array = [
    ['fs_id' => '4c524d8abfc6ef3b201f489c', 'name' => 'restaurant', ...],
    // More array elements...
];

array_to_csv_download($array, 'restaurants.csv');

// The CSV file will be downloaded to the user's computer.
登入後複製

附加說明:

作為使用php://memory 的替代方法,您也可以使用php://output檔案描述符,這對於大型資料集可能更有效。

此方法提供了一種從 PHP 陣列建立和下載 CSV 檔案的簡單方法,使其成為網站開發人員的寶貴工具。

以上是如何從 PHP 陣列下載 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板