PHP スクリプトに mysql から約 60,000 件のメール アドレスを一覧表示する長いループが含まれていますが、30,000 件を超えると、php スクリプトが動作を停止してブレーキがかかり、すべての php スクリプトが白いページで記述されることがあります (ページの背景がイメージ化されています)。PHP を増やしましたメモリ制限を無制限にしますが、助けにはなりません。問題は何ですか?
5 に答える
デフォルトの実行時間制限は 30 秒、または php.ini の *max_execution_time* 値です。あなたのスクリプトはそれよりも時間がかかりますか? その場合は、 で制限を増やすことができますset_time_limit
。
もっと良い質問は、そんなに時間がかかる 60,000 個の電子メール アドレスをどうしているのかということです。時間がかかりすぎていることを行うためのはるかに優れた方法がある可能性があります。
問題はメモリにあるのではなく、Time for execution にあると思います
set_time_limit(VERY_BIG_NUMBER);
アップデート:
追加
ini_set("display_errors","on");
error_reporting(E_ALL);
エラーがあれば検査します
ここで試すことができることは 2 つあります。まず、set_time_limit(0)
. ゼロに設定すると、本質的に時間制限がないことを意味します。
次に、 を使用したい場合がありますignore_user_abort(false)
。これは、クライアントの切断によってスクリプトの実行を中止するかどうかを設定します。
どちらも、スクリプトが必要な限り実行し続けることを保証します...またはサーバーがパックアウトするまで:)
「max_execution_time」を確認してください
スクリプトが壊れるまでの実行時間は? 30秒?
スクリプトの最大実行時間を使用set_time_limit()
して増やします。