Ich benutze diesen PHP-Code in CLI und CGI-Modusletzte Zeile anstatt machen neue
Es wartet eine kurze Zeit, bevor die nächste Zeile zeigt, ich will nicht alle fünf auf einmal angezeigt werden, Ich möchte Line1 durch die nächste usw. für alle zehn Zeilen ersetzen.
Danke
if (!defined('STDOUT'))
define('STDOUT', null);
if (!defined('STDERR'))
define('STDERR', null);
function buffer($stream, $message)
{
if (php_sapi_name() == 'cli')
{
// CLI - output to given stream
fputs($stream, $message);
}
elseif (php_sapi_name() == 'cgi-fcgi' || ob_get_level()> 0)
{
// Web but output buffering is on - bypass it
$buffer = ob_get_clean();
echo nl2br($message).str_pad('',4096);
flush();
ob_start();
echo $buffer;
}
else
{
// Web without output buffering
echo $message;
flush();
}
}
for ($i = 0; $i<10; $i++) {
buffer(STDOUT, "Line" . $i . PHP_EOL);
sleep(1);
}
Ich bin mir nicht sicher, was du meinst mit "Ich möchte example1 durch die nächste und so weiter für alle fünf ersetzen." –
Wenn ich Sie richtig verstehe: Sie möchten mehrere Zeilen ausgeben, wollen diese aber nicht untereinander anzeigen, sondern die letzte Zeile durch die nächste ersetzen? Um das zu erreichen, kann dies nicht mit reinem PHP gemacht werden; Sie müssen Bildschirmsteuerbefehle in der Befehlszeile ausgeben (diese sind plattformabhängig) und müssen JavaScript oder AJAX in Webumgebungen verwenden oder die gesamte Seite oder einen Frame oder Iframe aktualisieren. – syck
Mögliches Duplikat von [Using flush() ersetzt die letzte Zeile, anstatt eine neue in PHP zu erstellen] (http://stackoverflow.com/questions/14884902/using-flush-replace-last-line-rather-than-make-new -ein-in-php) – syck