XaraX: nachtrag: tail -f

Beitrag lesen

Re:

  
<?php  
// js.php  
header('Content-Type: application/x-javascript');  
if($_SERVER['QUERY_STRING']=='') exit;  
clearstatcache();  
$dat='stream.datei';  
if($_SERVER['QUERY_STRING']==filesize($dat)){  
   for($i=0;$i<30;$i++){  
       sleep(1);  
      clearstatcache();  
      if($_SERVER['QUERY_STRING']!=filesize($dat))  
         break;  
   }  
   if($i==30) exit("anzeige('',".filesize($dat).")");  
}  
$d=fopen($dat,'r');  
fseek($d,$_SERVER['QUERY_STRING']);  
echo 'anzeige("'.fread($d,filesize($dat)).'\n",'.filesize($dat).')';  
fclose($d);  
?>  

In Worten:

senden eines HTTP-Headers
Prüfung, ob ein QueryString übergeben wurde und gegebenenfalls brich ab
Löschen des Dateiinformationscach
Speichern des Namens der zu überwachenden Datei/Gerät/etc.
Prüfung, ob die Datei größergeworden ist => wenn nein =>
Prüfe jede Sekunde, ob die Datei größer geworden ist, 30 Sekunden lang
wenn größer geworden => brich Prüfung ab
wenn $i==30 (30 Sekunden sind vorüber, ohne Größenveränderung der Datei) =>
brich ab

Auslesevorgang...

Im allgemeinen ist dies ein Böses[TM] Verfahren, weil mittels HTTP ein Quasie-Stream veranstaltet wird, wofür das Protokoll schlichtweg nicht ausgerichtet ist.

Gruß aus Berlin!
eddi

--
Wer Rechtschreibfehler findet, darf sie behalten.