- 締切済み
PHPでの複数ファイル出力
よろしくお願いします。 複数の文字列を作成し($str_abc,$str_123)、それを元にファイルを作って、画面上に「開く、保存、キャンセル」のファイル出力ウインドウを出したいと思います。 ひとつだけなら、問題なくでるのですが、以下のように二つ一度に出したい(ファイル出力ウインドウが2つ)のですが、うまく出力することが出来ません。 どのようにやったら複数のファイルを一度に出すことができるのでしょうか。 <?php $str_abc = "<html><body>abc</body></html>"; $str_123 = "<html><body>123</body></html>"; //$str_abcを元にabc.htmlをつくる $fp = fopen("abc.html", 'w'); fwrite($fp,$str_abc); $fp = fopen("abc.html",'r'); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"abc.html\""); fpassthru($fp); //$str_123を元に123.htmlをつくる $hp = fopen("123.html", 'w'); fwrite($hp,$str_123); $hp = fopen("123.html",'r'); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"123.html\""); fpassthru($hp); ?> よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wp_
- ベストアンサー率54% (132/242)
仕様です、と言うのは既に言及されてるから良いとして //socketを明示的に開き、クエリをべた書きして送信するという方法もありますね。 >//$str_123を元に123.htmlをつくる >$hp = fopen("123.html", 'w'); >fwrite($hp,$str_123); 上記の部分について、これが投稿仕様だったら無駄な突っ込みなのでスルーして欲しいのですが fclose($hp)をしませんと物理的な書き込みが行われません。 二回目のfopenの前にfclose()を記述しないと正常に動作しないと思われます。
- inu2
- ベストアンサー率33% (1229/3720)
PHPの問題ではなく、httpの仕様です つまり、不可能です。 JavaScriptと組み合わせて、連続でリクエスト投げれば擬似的に二つほぼ同時にDLできているように見せることは可能かと思います。