Myslím, že se za výběr jazyka nemusíte omlouvat. PHP je skvělý jazyk pro konzolové aplikace.
Vyzkoušejte toto:
<?php
for( $i=0;$i<10;$i++){
print "$i \r";
sleep(1);
}
?>
"\r" přepíše řádek novým textem. Chcete-li vytvořit nový řádek, stačí použít "\n", ale hádám, že to už víte.
Snad to pomůže! Vím, že to funguje v Linuxu, ale nevím, jestli to funguje ve Windows nebo jiných operačních systémech.
Chcete-li vymazat dříve vytištěný znak, máte tři možnosti:
-
echo chr(8) . " ";
opakuje znak zpět a přesune kurzor zpět o jedno místo a mezera pak znak přepíše. Můžete použítchr(8)
vícekrát za sebou pro posun o několik znaků zpět. -
echo "\r";
vrátí kurzor na začátek aktuálního řádku. Nyní můžete řádek nahradit novým textem. -
Třetí možností je nastavit řádek a sloupec pozice kurzoru pomocí kódů escape ANSI a poté vytisknout náhradní znaky. Nemusí fungovat se všemi terminály:
function movecursor($line, $column){
echo "\033[{$line};{$column}H";
}
\r udělal trik.
Pro budoucí použití, \b nefunguje v PHP v Linuxu. Byl jsem zvědavý - tak jsem udělal pár experimentů i v jiných jazycích (tohle jsem dělal v Linuxu - nevím, jestli bude výsledek stejný ve Windows/Mac)..
\b Funguje v...
- Perl
- Ruby
- Tcl – s kódem
puts -nonewline "Hello\b"
\b Nefunguje v
- PHP – kód
print "Hello\b";
vytiskneHello\b
- Python – kód
print "Hello\b"
vytiskneHello<new line>
. Stejný výsledek sprint "Hello\b",