2006年4月 5日

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


さわだです。

メモリ量と、処理時間の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 mailing list PHP-users@xxxxx
http://ns1.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://www.php.gr.jp/php/novice.php3

投稿者 xml-rpc : 2006年4月 5日 17:13
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/34448
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。