1

これは少しばかげていますが、私が以前にやりたかったことで、理解できませんでした。コマンドラインから実行するPHPスクリプトがあります。スクリプトがまだ実行中であることをユーザーに知らせるための小さなタイマーアニメーションが欲しいのですが。これが私が持っているものです:

while (1 == 1) {
   echo '—';
   usleep(100000);
   echo '\';
   usleep(100000);
   echo '|';
   usleep(100000);
   echo '/';
}

しかし、各エコーでその前の文字を置き換えるにはどうすればよいですか?

4

3 に答える 3

2

たとえば、各文字の前にバックスペースを印刷する必要があります。-

echo '-';
usleep(100000);
echo "\b/";

ここでは二重引用符を使用する必要があることに注意してください。そうしないと、エスケープシーケンスが機能しません。

私はあなたが残りを解決できると確信しています:)

「\b」が機能しない場合は、次を試してください。-

echo chr(8) . '/';
于 2012-09-28T21:08:42.200 に答える
1

phpncurses拡張機能を試してください。

http://php.net/manual/en/ref.ncurses.php

于 2012-09-28T21:03:46.477 に答える
1

使用できます

echo "yourCharacter1\r";
usleep(100000);
echo "yourCharacter1\r";

また

echo "\ryourCharacter1\r";
usleep(100000);
echo "\ryourCharacter2\r";

\r同じ行の位置0にカーソルを戻します。

また、あなたは試すことができます(オンラインで見つかりました)

system("clear"); // before you echo new characters

また

passthru('clear'); // before you echo new characters
于 2012-09-28T21:15:21.407 に答える