1

私はサイト クローラーを作成し、while ループを使用して Web サイト全体をクロールしましたが、約 660 秒後にループが停止しました。

set_time_limit ( 0 ) を設定し、フラッシュを使用して出力をエコーし​​、スリープ機能を使用します。コードが間違っていると思いましたが、コードで単純な while ループをテストします。

        while ( 1 ) {
        sleep ( 30 );
        echo "Crawling on the go ..." . time ();
        echo "<br />";
        echo str_pad ( " ", 4096 );
        flush ();

    }

しかし、この単純な while も約 660 秒後に停止します!何が問題なのかわかりません! サーバーで WHM Process Manager を確認したところ、プロセスが強制終了されたことがわかりました。CPU や RAM の使用率などが原因で、サーバーのファイアウォールがプロセスを強制終了することを知りたいですか? 助けてください!

4

3 に答える 3

1

set_time_limit(0);PHPの開始タグの後にページの上部に書き込む必要があります。これは私のために働いた..これがあなたのためにも働くことを願っています..

于 2011-06-29T11:01:46.053 に答える
0

set_time_limit() は拒否される可能性があります (PHP が safe_mode の場合は効果がありません)。ちなみに、sleep() の時間は制限時間に含まれないので、sleep を削除してスクリプトが動いている時間が変わると、おそらく制限時間です。これが時間制限 (他のオプションは CPU 時間制限) であるかどうかを確認するには、シャットダウン関数を登録し、接続状態を確認します(値 2 はタイムアウトを意味します) 。

于 2011-06-29T11:07:11.753 に答える
0

次の行を .htaccess に追加することもできますphp_value max_execution_time <timeinseconds>

于 2011-06-29T11:25:31.610 に答える