[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 メーリングリストの案内