在PHP MySQL中创建CSV的问题

时间:2011-06-03 13:43:12

标签: php mysql

我必须为游戏运行配对算法,当配对完成后,我会在HTML上显示配对并创建一个csv文件。现在,一旦完成配对,我创建一个多维数组来存储特定值,然后将其传递给同一个php文件中的函数以生成csv文件。但是,这样做会将整个页面代码(即html和php代码)输出到.csv文件。这是代码:

   function performPairing()
   {
       .... 
      $count=0;
      $resultArray[][] = array();
      while ($currrow = @mysql_fetch_row($result))
      {
         $playerone = $currrow;
         $playertwo = @mysql_fetch_row($result);
         $resultArray[$count][] = $playerone[1];
         $resultArray[$count][] = $playerone[0];
         $resultArray[$count][] = $playertwo[1];
         $resultArray[$count][] = $playertwo[0];
         $count++;
         updateforeachrow($playerone, $playertwo);
      }
      generateDocument($resultArray, $count);
   }

    function generateDocument($resultArray, $count)
    {
        $output = fopen('php://temp/maxmemory'.(5*1024*1024), 'r+');
        $columns = array('Player One Col1', 'Player One Col2', 'Player Two Col1', 'Player Two Col2');
        fputcsv($output, $columns);
         for ($index=0 ; $index <=$count; $index++)
         {
            fputcsv($output, $resultArray[$index]);
         }
        rewind($output);
        $export = stream_get_contents($output);
        fclose($output);
        header('Content-type: application/octet-stream');
        header('Content-Disposition: attachment; filename = "export.csv"');
        echo $export;  
} 

但是这样做会将整个html代码输出到csv而不是特定的行。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

。制作字符串 。输出字符串到文件 。发送标题(这是允许的吗?)

使用file_put_contents(filename,str),然后使用标头发送它。 使代码更简单:)