【问题标题】:Create comma delimited .csv file with php用 php 创建逗号分隔的 .csv 文件
【发布时间】:2017-02-09 05:53:47
【问题描述】:

我正在尝试:

  1. 使用 php 代码创建逗号分隔的 .csv 文件。
  2. 在 .csv 文件的第一行插入列名。

请告诉我如何才能做到这一点。

    <?php

    header("Content-type: text/csv");
    header("Content-Disposition: attachment; filename=".$batch_id.".csv");
    header("Pragma: no-cache");
    header("Expires: 0");   

    $conn_sp = mssql_connect("SQLServer", "user", "password"); 
    $db_sp = mssql_select_db("databaseName", $conn_sp); 
    $stmt = mssql_init("[StoredProcedureName]",$conn_sp);       
    mssql_bind($stmt, "@BatchNo", $batch_id, SQLVARCHAR, FALSE, FALSE, 20);     
    $result = mssql_query("SET ANSI_NULLS ON"); 
    $result = mssql_query("SET ANSI_WARNINGS ON");      
    $result = mssql_execute($stmt);
    $record="";
    $comma=",";
    $record_end="\n";
    while ($row = mssql_fetch_array($result, MSSQL_ASSOC)){ 

    foreach ($row as $key => $value) {      

          echo $value;      
        }
        echo "\n";  

    }?>

!

【问题讨论】:

  • 我尝试了这些文章,但没有奏效。不确定,但我做错了,所以如果你能就上述代码提出建议,我将不胜感激。谢谢!
  • 首先,如果你删除了标题,那么你做对了吗?...你能发布你得到的输出吗?
  • 请看代码输出

标签: php csv


【解决方案1】:

看看 .csv 文件是如何创建的。

通常是这样的:

分隔符:,

换行:\n

将条目括起来:“

例如

"r1a","r1b","r1c"

"r2a","r2b","r2c"

等等……

这就是您的代码应该如何工作(未经测试):

         echo '"colname1","colname2",...';

         while ($row = mssql_fetch_array($result, MSSQL_ASSOC)){ 
        
            $first = true;
            foreach ($row as $key => $value) {      
    
                if(!$first) {
                     echo ",";
                }
        
                  echo '"'.$value.'"';      
                }
                echo "\n";  
                $first=false;
            }

【讨论】:

  • 不要制作自己的 CSV 解析器。如果$value 有双引号、逗号怎么办?
  • 那么,克里斯,最好的方法是什么?你能分享一下例子吗?谢谢!
  • @Paul 请使用@ 标记用户,否则不会发送通知。您应该使用内置选项php.net/manual/en/function.fputcsv.php。该页面上有示例。如果您在使用该帖子时遇到问题以及会发生什么。
  • @chris85 在大多数情况下,这个自己的 .csv 解析器会做得很好。我能想到的唯一问题是双引号 - 可以在这里解决:stackoverflow.com/questions/17808511/…
猜你喜欢
  • 2014-12-31
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2016-12-08
  • 2012-11-09
  • 2021-05-30
  • 2017-06-24
  • 1970-01-01
相关资源
最近更新 更多