コードセットを生成し、MySQL DBに保存してダウンロード可能なcsvファイルとして出力します。 PHP配列をcsvに変換するコードブロックの後にecho文もあります。ブラウザに出力する代わりにconvert_to_csv関数呼び出しの後のecho文は、代わりにファイルに出力し、最初の行を上書きします。 echo文を代わりにブラウザに出力するにはどうすればよいですか?コードブロックは次のとおりです。ヘッダを使用してcsvに出力する際に画面にエコーする
convert_to_csv($newCodesArray,$fileName,',');
echo "Your file was successfully generated";
function convert_to_csv($input_array, $fileName, $delimiter)
{
header('Content-Type: text/csv');
header("Content-Disposition: attachment; filename=\"$fileName\"");
$f = fopen('php://output', 'w');
/* loop through array */
foreach ($input_array as $line) {
/* default php csv handler */
fputcsv($f, $line, $delimiter);
}
fclose($f) or die("Can't close php://output");
}
ファイルのダウンロードを強制したり、同じ応答で画面にテキストを送信することはできません。ファイルを(CSVヘッダーで)返すか、テキストを画面に戻します。 1つの応答= 1つのタイプ。ファイルが正しく生成されたことを伝える必要がありますか?彼らはおそらく、ファイルがダウンロードされてから気付くでしょう。 –
"あなたのファイルは正常に生成されました"は単なる例でした。私は他のテキストも印刷/エコーしたかったのです。関数が呼び出される前に「あなたのファイルが生成されています。しばらくお待ちください」などのテキスト。出力に50万行近くがあり、ユーザーはしばらく待ってからフィードバックが役立ちます。 – FBP
@MagnusErikssonヘッダーが設定される前にエコーを実行しないでください。 – FBP