言語の選択について謝罪する必要はないと思います。 PHP は、コンソール アプリケーションに最適な言語です。
これを試してください:
<?php
for( $i=0;$i<10;$i++){
print "$i \r";
sleep(1);
}
?>
「\r」は、行を新しいテキストで上書きします。改行するには "\n" を使用できますが、既にご存知だと思います。
お役に立てれば!これが Linux で機能することはわかっていますが、Windows やその他のオペレーティング システムで機能するかどうかはわかりません。
以前に印刷された文字を消去するには、3 つのオプションがあります:
-
echo chr(8) . " ";
後ろの文字をエコーし、カーソルを 1 つ後ろに移動し、スペースで文字を上書きします。chr(8)
を使用できます 複数の文字を後ろに移動するには、連続して複数回。 -
echo "\r";
カーソルを現在の行の先頭に戻します。行を新しいテキストに置き換えることができます。 -
3 番目のオプションは、ANSI エスケープ コードを使用してカーソル位置の行と列を設定し、置換文字を出力することです。すべての端末で機能するとは限りません:
function movecursor($line, $column){
echo "\033[{$line};{$column}H";
}
\r うまくいきました。
今後の参考として、\b は Linux の PHP では機能しません。興味があったので、他の言語でもいくつかの実験を行いました (これは Linux で行いました - 結果が Windows/Mac で同じになるかどうかはわかりません)。
\b で動作します...
- パール
- ルビー
- Tcl - コード
puts -nonewline "Hello\b"
を使用
\b では動作しません
- PHP - コード
print "Hello\b";
Hello\b
を出力します - Python - コード
print "Hello\b"
Hello<new line>
を出力します .print "Hello\b",
と同じ結果