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.
Wer Rechtschreibfehler findet, darf sie behalten.