首页 >后端开发 >php教程 >如何从 PHP 脚本创建和下载 CSV 文件?

如何从 PHP 脚本创建和下载 CSV 文件?

Susan Sarandon
Susan Sarandon原创
2024-11-12 20:28:02322浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn