質問: "nippo_sentaku.php"; header("Location: {$next_url}"); ?> ```
回答: headerで宣言するとその処理中はすべてそのモードになります。 つまりダウンロード(attachment)で宣言すると、そのあとのすべての出力はダウンロードファイルの一部として含まれてしまうことになります。 もしExcelをダウンロードしようとしているとしたら、そのあとにhtmlが書かれていたらExcelとしては正しくないファイル=破損ファイルとしてなってしまう可能性が高いです(良くてExcelの中にそのhtmlが書き込まれる) header宣言のあとは「これ以上処理・出力なし」ということでexit();を置くこともよくあります。(少なくとも私がみてきた中では) 一応、javascriptでダウンロード終了を検知するという記事があるので1つ試してください。 他には、ダウンロード処理の最後にファイルを削除するように書いておき、非同期(JavaScript)でPHPを実行し、ファイルの存在をチェックし、なくなっていたら削除された→リダイレクト というのも考えられなくはないですが、ダウンロードしたいファイルをどのように作っているかにもよるので、ダウンロードファイルそのものよりもダミー用のファイルのほうが作りとしては現実的かもしれません。 ただ、今回の質問内容は非常にスポットでの質問(大きな流れの中での一部分のみ)ですので、もう少し全体の流れを要件として追記いただけると、代替案が提案できるかもしれません。