[PHP-users 17032]CSVファイル生成+ダウンロード処理のタイムアウトについて

松尾 智和 matsuo @ sltsi.co.jp
2003年 7月 29日 (火) 14:41:07 JST


松尾です。投稿するのは初めてです。よろしくお願いします。

PHPで処理が重い場合、ブラウザのタイムアウトを回避する手法として、
flush()を使う手法があるのですが・・・

SQLからデータを抽出してCSVファイル生成してダウンロードをする手法
としてHTTP Headerを使った場合、flush()が効かず、5分経過でブラウザ
のタイムアウトが発生します。

やはり処理が重い場合は、CSV形式ファイルダウンロードをさせる場合は、
ファイルを生成してダウンロードさせるべきになるのでしょうか?

もし、HTTP Header手法の場合でもタイムアウト回避方法があれば教えて
いただけると幸いです。

        Header("Content-Disposition: attachment; filename=\"" .
$filename . "\"");
        Header("Content-Type: application/text");

	// データ取得
	for( $i = 0; ( @OCIFetch( $clsora->cursor ) == TRUE ); $i++ )
	{
		if($i % 1000 == 0) 
		{
		  echo "\n";
		  flush();
		}
		
		// 出力処理(SJIS形式)
		$stroutput = OCIResult($clsora->cursor,1)	    
		     . "," . OCIResult($clsora->cursor,2)	    
		     . "," . OCIResult($clsora->cursor,3) . "\r\n"; 
		        $stroutput = i18n_convert( $stroutput, "SJIS" ) ;

	        i18n_http_output("pass");
	        echo $stroutput;
	}




PHP-users メーリングリストの案内