2016-07-31 7 views
1

私はファイルの変更を知るためにPHPループを使用しています。ファイルの変更が発生した場合、私はループを停止しようとしています。しかし、停止する代わりに私の状態で..ループが続く。PHPループが破損しない

Route::get('api.chat.buffer/{job_id}',function($job_id){ 
    $award= DB::table('job_awards')->where('job_id',$job_id)->first(); 

     $dirname = base_path().'/files/chat/'; 
     $filename = $award->client_id.'_'.$award->user_id.'.timelog.log'; 
     $i =1; 
     for($z=0;$z<=20;$z++){ 
      $current_file_time = filemtime($dirname.$filename); 
      if($_GET['timestamp']<$current_file_time){ 
       echo json_encode(array('status'=>'success','data'=>$current_file_time,'node'=>1)); die; 
       break; 
      } 
      sleep(1); // this should halt for 3 seconds for every loop 
     } 

    echo json_encode(array('status'=>'success','data'=>$current_file_time,'node'=>0)); 
    die; 
}); 

私はチャットスクリプトを作成し、ファイルの変更中に変更を追跡しています。

ありがとうございました

+0

この行は 'echo json_encode(array '' status '=>' success '、' data '=> $ current_file_time、' node '=> 1)です。死ぬ; 'が実行される?なぜあなたはそれに 'die 'を追加しましたか? – Maraboc

+0

いいえ...それでも条件は一致していますが、常にそうではありませんノード=> 0最後の行 –

+1

if文の前に、 'echo $ _GET ['timestamp']'と ' echo $ current_file_time'この条件が満たされているかどうかを確認しますか? – Maraboc

答えて

0

forループ内でスリープ機能を使用できますか?あなたは収穫で試しましたか?ブレークするループ文の数を割り当ててみてください。この場合はのブレーク1になります。http://php.net/manual/en/control-structures.break.php

+0

私は... whileループを使っても同じ結果を返します –

+0

条件が満たされていません..毎回..同じfilemtime .. new filemtime ..を与えるのではなく –

+0

私はそれを見ませんでしたあなたはfilemtime lolを使用しています。 –

関連する問題