Non credo che tu debba scusarti per la scelta della lingua. PHP è un ottimo linguaggio per le applicazioni console.
Prova questo:
<?php
for( $i=0;$i<10;$i++){
print "$i \r";
sleep(1);
}
?>
Il "\r" sovrascriverà la riga con il nuovo testo. Per creare una nuova riga puoi semplicemente usare "\n", ma immagino che tu lo sapessi già.
Spero che sia di aiuto! So che funziona su Linux, ma non so se funziona su Windows o altri sistemi operativi.
Per cancellare un carattere precedentemente stampato hai tre opzioni:
-
echo chr(8) . " ";
fa eco al carattere indietro e sposta il cursore indietro di una posizione, quindi lo spazio sovrascrive il carattere. Puoi usarechr(8)
più volte di seguito per tornare indietro di più caratteri. -
echo "\r";
riporterà il cursore all'inizio della riga corrente. Ora puoi sostituire la riga con un nuovo testo. -
La terza opzione consiste nell'impostare la riga e la colonna della posizione del cursore utilizzando i codici di escape ANSI, quindi stampare i caratteri sostitutivi. Potrebbe non funzionare con tutti i terminali:
function movecursor($line, $column){
echo "\033[{$line};{$column}H";
}
\r ha funzionato.
Per riferimento futuro, \b non funziona in PHP in Linux. Ero curioso, quindi ho fatto un paio di esperimenti anche in altri linguaggi (l'ho fatto in Linux - non so se il risultato sarà lo stesso in Windows/Mac)..
\b Funziona con...
- Perl
- Rubino
- Tcl - con codice
puts -nonewline "Hello\b"
\b Non funziona in
- PHP - il codice
print "Hello\b";
stampaHello\b
- Python - codice
print "Hello\b"
stampaHello<new line>
. Stesso risultato conprint "Hello\b",