PHPでファイル出力するのに下記コードを実行しました。
すると、ダウンロードされたファイルには「test開始!」と$arrayの両方が書き込まれていました。
header()がファイルをダウンロードさせる機能を担っていると認識しているのですが、
なぜダウンロードされた"後"なのに、出力バッファに記述した$arrayがダウンロードファイルに記述されているのかわかりません。
また、「test開始!」は、ブラウザに表示されるだけだと思っていましたが、なぜファイルにこれも記述されているのかもわかりません。
header()の記述位置は意味をなさず、出力系全てを含んでファイルダウンロードさせるんでしょうか・・。
どうぞよろしくお願いいたします。
php
1<?php 2echo "test開始!"; 3$data = array( 4 array('佐藤', '東京都', '29歳'), 5 array('田中', '千葉県', '31歳'), 6 array('鈴木', '北海道', '54歳') 7 ); 8 header('Content-Type: application/octet-stream'); 9 header('Content-Disposition: attachment; filename=data.csv'); 10 $stream = fopen('php://output', 'w'); 11 foreach($data as $row){ 12 fputcsv($stream, $row); 13 }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/17 07:12