首页 >后端开发 >php教程 >如何将 PHP 数组转换为带标题的格式正确的 CSV 文件?

如何将 PHP 数组转换为带标题的格式正确的 CSV 文件?

Barbara Streisand
Barbara Streisand原创
2024-10-19 18:58:30379浏览

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

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