[PHP-users 28934] Re: CSVファイルが大きすぎて読み込めない

Shu Sawada luna @ lunanet.gr.jp
2006年 4月 5日 (水) 17:13:22 JST


さわだです。

メモリ量と、処理時間の2つの可能性があると思います。

まずメモリ量ですが、php.iniのmemory_limitの設定でPHPが使用するメモリ量を
設定できます。デフォルトは8Mぐらいのはずです。
当然、CSVデータ量+他諸々のデータサイズがこれを越えるとエラーになります。
http://jp2.php.net/manual/ja/ini.core.php#ini.memory-limit

次に処理時間ですが、IEさんはあまりに長い間webサーバから応答が帰ってこないと、
途中で諦めて「ページが表示できません」と断念した旨を教えてくれます。
この場合、
- 処理を小分けにして1ページがすぐ処理されるようにする
- 処理の途中途中でダミーデータを送るなどして、ブラウザの気を引く
という対策になると思います。
後者の場合、

//ここら辺も考えてください
ob_end_flush();

for(;;)
{
	//長い処理がある
	sleep(20);

	//空白を送ったり
	str_repeat(" ", 1024);	
}
ob_start();

みたいな感じとか。

それからもう一つ、max_execution_timeの設定もあります。
http://jp2.php.net/manual/ja/ref.info.php#ini.max-execution-time
デフォルトでは30秒以上PHPは実行されないはずです。
これは、無限ループしているプログラムなんかの時に役に立ちます。
一時的に無制限にするなら、set_time_limit(0);とPHPスクリプトに書いてあげれば良いです。
http://jp2.php.net/manual/ja/function.set-time-limit.php

PHPのリソース的な問題や、ブラウザ側の問題で気になるところはここら辺です。

-- 
Shu Sawada
http://luna.lunanet.gr.jp/
http://www.cycleof5th.com/


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