如何從 PHP 腳本建立和下載 CSV 檔案?

Susan Sarandon
發布: 2024-11-12 20:28:02
原創
222 人瀏覽過

How to Create and Download CSV Files from PHP Scripts?

從PHP 腳本建立和下載CSV 檔案

簡介

為了增強網站功能,您可能會遇到這樣的情況:需要將PHP 數組中的資料匯出到CSV 檔案中以供使用者下載。然而,作為新手程式設計師,理解如何執行此任務可能具有挑戰性。本文提供了有效實現此目標的全面指南。

建立CSV 檔案

要從PHP 陣列產生CSV 文件,您可以使用內建的在fputcsv() 函數中:

$f = fopen("tmp.csv", "w");
foreach ($array as $line) {
    fputcsv($f, $line);
}
登入後複製

配置HTTP標頭

要在瀏覽器中觸發「另存為」對話框,您需要指定適當的HTTP 標頭:

header('Content-Disposition: attachment; filename="filename.csv"');
登入後複製

組合兩個進程

透過結合CSV 檔案建立和HTTP標頭配置,可以產生以下內容函數:

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    // Open file in memory
    $f = fopen('php://memory', 'w');
    
    // Generate CSV data
    foreach ($array as $line) {
        fputcsv($f, $line, $delimiter);
    }
    
    // Set headers
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    
    // Output file
    fpassthru($f);
}
登入後複製

用法

要使用此函數,您只需提供PHP 陣列和檔案名稱:

array_to_csv_download(array(
    array(1, 2, 3, 4),
    array(1, 2, 3, 4)
), "numbers.csv");
登入後複製

替代方法

為了提高效能,您可以使用php://output 而不是 php://memory 並消除了查找操作:

function array_to_csv_download($array, $filename = "export.csv", $delimiter = ";") {
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    
    // Open output stream
    $f = fopen('php://output', 'w');
    
    // Generate CSV data
    foreach ($array as $line) {
        fputcsv($f, $line, $delimiter);
    }
}
登入後複製

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

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