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

Susan Sarandon
发布: 2024-11-12 20:28:02
原创
227 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板