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

Barbara Streisand
发布: 2024-10-19 18:58:30
原创
281 人浏览过

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

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!