Hi,
also ich habe einen Streamchat geproggt, der mit Textdateien arbeitet.
Ganz am Anfang liest es die Datei chat.dat Zeile für Zeile aus und gibt diese aus. Wenn ich jetzt allerdings über ein Formular was dazuschreibe (das macht es auch), dann schreibt es den neuen Text nicht dazu.
Was muss ich ändern?
Danke im Voraus,
PCM
also ich habe einen Streamchat geproggt, der mit Textdateien arbeitet.
<?php
$array = file ("chat.dat");
$x = 0;
while($x<count($array)){
$text = $array[$x];
echo str_replace("\n","",$text)."<br>";
$x++;
flush();
}
while (!connection_aborted()) {
for ($i = 0; $i < count ($array); $i++) {
$modified = $array[$i++];
while (!empty($modified)) {
$text = $array[$i];
if($text != "\n"){
echo str_replace("\n","",$text)."<br>";
flush();
}else{
echo " ";
}
usleep(500000);
}
}
}
?>
Ganz am Anfang liest es die Datei chat.dat Zeile für Zeile aus und gibt diese aus. Wenn ich jetzt allerdings über ein Formular was dazuschreibe (das macht es auch), dann schreibt es den neuen Text nicht dazu.
Was muss ich ändern?
Danke im Voraus,
PCM
Ich weis jetzt nicht genau ob es daran liegt, aber wenn Du schon flush() benutzt, dann muss das Outputbuffering auch erst aktiviert werden ob_start().
So?
<?php
$array = file ("chat.dat");
$x = 0;
while($x<count($array)){
$text = $array[$x];
echo str_replace("\n","",$text)."<br>";
$x++;
flush();
}
while (!connection_aborted()) {
for ($i = 0; $i < count ($array); $i++) {
$modified = $array[$i++];
while ($modified) {
$text = $array[$i];
if($text != "\n"){
ob_start();
echo str_replace("\n","",$text)."<br>";
flush();
}else{
echo " ";
}
}
sleep(2);
}
}
?>
Setze es mal an den Code-Anfang. Ich bin mir aber nicht sicher, ob es daran liegt!
Wenn ich mir jetzt den Quelltext angucke, zeigt er es an, aber nicht im Explorer.
also wenn man ob_start und flush drinne hat, dann speichert der server doch die ausgabe, bis das script fertig gerechnet ist.. also denk ich recht ungeignet für nen stream *g*
Logge dich ein um einen Beitrag zu schreiben.