

下記のsales.csvを読み込み、実行結果をブラウザに表示する。  
ブラウザに表示させた実行結果をcsvファイルとして出力（ダウンロード）したいです。

ダウンロードはできるのですが、エディターに記述した下記のコードが全てcsvに書き込まれ  
しかも文字化けしているようです。。。

原因が分からないので、どなたかお助けください〜。

[code]

    <?php
    
    $dataName = "sales.csv";
    $rows= file($dataName, FILE_IGNORE_NEW_LINES);
    //var_dump($lines);
    
    $memberNum = 0;
    $memberNum = count($rows) - 1;
    $saleSum = 0;
    $avr = 0;
    //var_dump($memberNum);
    
    $record = array();
    
    foreach ($rows as $row) {
      $record = explode(",", $row);
      $saleSum += $record[1];
    }
    
    $avr = $saleSum / $memberNum;
    
    if (!empty($_POST['download'])) {
      $fileName = "report.csv";
      $csv = "";
      $csv = "こんにちは";
      $fp = fopen($fileName, 'ab');
      flock($fp, LOCK_EX);
      fputcsv($fp, $csv);
      fclose($fp);
      echo("社員数,売上合計,売上平均\n$memberNum,$saleSum,$avr");
      header('Content-Type: application/octet-stream');
      header('Content-Disposition: attachment; filename=' . $fileName);
      echo mb_convert_encoding($csv,"SJIS","EUC-JP");
      exit;
    }
    
    // $filename = "report.csv";
    // file_put_contents($filename, "社員数,売上合計,売上平均\n$memberNum,$saleSum,$avr");
    
    
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <title>CSVファイルの読み込み・出力</title>
      <link rel="stylesheet" href="">
    </head>
    <body>
    <table>
      <tr>
      <th>社員数：</th>
      <td><?php echo $memberNum."<br>"; ?></td>
      </tr>
    
      <tr>
      <th>売上合計：</th>
      <td><?php echo $saleSum."<br>"; ?></td>
      </tr>
    
      <tr>
      <th>売上平均：</th>
      <td><?php echo $avr."<br>"; ?></td>
      </tr>
    </table>
    <form method="post">
    <input type="submit" name="download" value="CSVでダウンロードする">
    </form>
    </body>
    </html>
    
[/code]


CC BY-SA 3.0
2015-11-21T15:42:18.410
19140
2016-08-25T05:29:30.913
7176
question
php
phpでcsvデータ出力（ダウンロード）


fileそのものがダウンロードされてしまう。とのことですので、サーバー上でphpとして処理されていないのではないでしょうか？

phpの対象となるようにサーバーの設定が必要かと思います。

apacheをお使いであれば、以下の記事など参考になるかと思います。  
<http://www.adminweb.jp/apache/php/index2.html>


CC BY-SA 3.0
2015-11-21T17:20:40.980
19143
2015-11-21T17:20:40.980
409
19140
answer