2016-07-31 15 views
1

Ich benutze PHP-Schleife, um irgendwelche Dateiänderungen kennen zu lernen. Wenn die Datei Änderungen auftreten, versuche ich die Schleife zu stoppen. Aber in meinem Zustand, statt zu stoppen. Die Fahrt geht weiter.PHP Loop bricht nicht

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; 
}); 

Ich erstelle Chat-Skript und Tracking während der Änderung der Datei ändern.

Dank

+0

Hat diese Zeile 'echo json_encode (array ('status' => 'success', 'data' => $ current_file_time, 'node' => 1)); sterben; 'wird ausgeführt? und warum hast du "sterben" hinzugefügt? – Maraboc

+0

nein es ist nicht ... sogar die Bedingung angepasst .. aber nicht .. es ist immer .. on node => 0 letzte Zeile –

+1

Versuchen Sie, hinzufügen, vor, wenn Anweisung, echo $ _GET ['Zeitstempel'] 'und' echo $ current_file_time', um zu sehen, ob diese Bedingung jemals erfüllt ist? – Maraboc

Antwort

0

können Sie Sleep-Funktion innerhalb einer for-Schleife verwenden ?. Hast du es mit der Ausbeute versucht? Versuchen Sie, die Anzahl der Schleifenanweisungen zuzuweisen, die unterbrochen werden sollen. in diesem Fall wäre es Pause 1;

+0

Ich habe verwendet ... While-Schleife auch .. geben gleiche .. Ergebnis .. –

+0

Zustand ist nicht befriedigend ..einmal .. es gibt die gleiche Dateizeit .. anstelle der neuen Dateizeit .. –

+0

Ich habe das nicht gesehen Sie verwenden filemtime lol. –