###前提・実現したいこと
①ソースコードの$download_urlで指定したURLのファイルを、このソースコードと同じディレクトリにダウンロードできるようにしたい。headerの
Cannot modify header information - headers already sent by
というエラーがあるということはheaderの前で出力が行われているということだと思うのですが、どこで出力されていて、どのように解決すれば良いか知りたい
②MINGW32(コマンドライン)で、下記のソースコードの実行中に、Ctrl+Cで実行ファイルを中断できるようにしたい。
①または②について、または両方分かる方は両方教えていただけると嬉しいです。
初心者ですので、環境など説明不足があれば指摘していただけると助かります。よろしくお願いします。
###発生している問題・エラーメッセージ
①コマンドライン上には以下のようなエラーが出ます。ソースコード、エラー内容のディレクトリ等を多少変更して貼り付けていますが、エラー内容に影響はないと思いますので、よろしくお願いします。
$ php FileGetter.php PHP Warning: filesize(): stat failed for http://www.domain/hoge.zip in ~\FileGetter.php on line 19 Warning: filesize(): stat failed for http://www.domain/hoge.zip in ~\FileGetter.php on line 19 PHP Warning: Cannot modify header information - headers already sent by (output started at ~\FileGetter.php:19) in ~\FileGetter.php on line 19 Warning: Cannot modify header information - headers already sent by (output star ted at ~\FileGetter.php on line 19) in ~\FileGetter.php on line 19 PHP Warning: Cannot modify header information - headers already sent by (output started at ~\FileGetter.php on line 19) in ~\FileGetter.php on line 22 Warning: Cannot modify header information - headers already sent by (output star ted at ~\FileGetter.php:19) in ~\FileGetter.php on line 22
②普段はCtrl+Cで中断できるのですが、このプログラムを走らせたときに限り、Ctrl+Cが効かなくなってしまいます。
###該当のソースコード
PHP
11. <?php 22. 33. /** 44. * 法人番号ファイルのクローラー(実行ファイル) 55. */ 66. 77. $download_url = "http://www.domain/hoge.zip"; 88. 99. // ファイルのパス 1010. $filepath = $download_url; 1111. 1212. // リネーム後のファイル名 1313. $filename = 'download.zip'; 1414. 1515. // ファイルタイプを指定 1616. header('Content-Type: application/force-download'); 1717. 1818. // ファイルサイズを取得し、ダウンロードの進捗を表示 1919. header('Content-Length: '.filesize($filepath)); 2020. 2121. // ファイルのダウンロード、リネームを指示 2222. header('Content-Disposition: filename="'.$filename.'"'); 2323. 2424. // ファイルを読み込みダウンロードを実行 2525. readfile($filepath);
###試したこと
失敗したらそのまま中断したかったので、10秒で実行を終えるようにファイルの頭に
ini_set("max_execution_time",10);
をつけましたが、これも効いていないようでした。
また、headerの前に出力をしてしまっていないかも確かめましたが、おそらくしていないかと思います。以下のサイトを参考にさせていただきました。
http://www.flatflag.nir87.com/force-download-833#i
###補足情報(言語/FW/ツール等のバージョンなど)
言語:PHP 5.6.30
ツール:mintty 2.7.3
OS:Windows7(32bit)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/02 03:48
2017/06/02 04:36 編集
2017/06/02 04:35
2017/06/02 04:49
2017/06/02 05:30 編集
2017/06/02 05:35
2017/06/02 06:07 編集
2017/06/02 06:14
2017/06/02 06:18
2017/06/02 06:25