2011-06-29 11 views
1

私はサイトクローラを作成しましたが、whileループを使用してウェブサイト全体をクロールしましたが、約660秒後にループが停止します。php私の無限ループが630から660秒の間に停止する

私は(0)は、set_time_limitを設定し、出力をエコーするためにフラッシュを使用し、私は、スリープ機能を使用し、私は私のコードが間違っていると思ったが、私は私のコードでループしながら、簡単なテスト:

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

    } 

しかし、このシンプルながら、約660秒後にも停止してください!私の問題は何か分かりません!私は自分のサーバー上のWHMプロセスマネージャーをチェックして、私のプロセスが殺されたのを見ました! 私はCPUやRAMの使用のためにサーバーのファイアウォールが私のプロセスを殺すのを知りたいのですか? plz help me!

+1

多分あなたの.htaccessファイルに以下の行を置くことができます(2の値は、時間を意味します)、register shutdown functionとチェック(他のオプションは、CPU-時間制限あり)あなたの出力は大きすぎますか? – nabuchodonossor

+0

出力?どういう意味ですか ? –

+0

あなたのホストは実行時間のハード制限を設定しているようです。あなたのホストに尋ねる。 – thirtydot

答えて

1

PHPの開始タグの後にページ上部にset_time_limit(0);と記述する必要があります。

0

set_time_limit()は拒否される可能性があります(PHPがsafe_modeの場合は無効です)。副メモでは、sleep()時間は時間制限に含まれていないので、スリープを解除してスクリプトが動作している時間が変更された場合、おそらく時間制限があります。これは時間制限があるかどうかを確認するにはconnection status

0

あなたはまた、php_value max_execution_time <timeinseconds>

関連する問題