如何从 PHP 控制台中删除文本?

发布于 2024-11-09 12:30:53 字数 124 浏览 0 评论 0原文

我的目标是将更新进度百分比打印到控制台(在 Linux 和 Windows 中)。目前我只是每 10% 打印出百分比,但我更希望它每 1% 更新一次,而不用百分比填充屏幕。

是否可以删除在 PHP 中写入控制台的文本?

My goal is to print an updating progress percentage to the console (in both Linux and Windows). Currently I just print out the percentage each 10%, but I would prefer that it updated itself every 1% without filling the screen with percentages.

Is it possible to remove text you have written to the console in PHP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

只是一片海 2024-11-16 12:30:53
echo chr(8);

将打印一个退格字符。

echo chr(8);

will print a backspace character.

新雨望断虹 2024-11-16 12:30:53

很简单
请注意下面的示例

$removeLine = function (int $count = 1) {
    foreach (range(1,$count) as $value){
        echo "\r\x1b[K"; // remove this line
        echo "\033[1A\033[K"; // cursor back
    }
};

echo "-----------------------------\n";
echo "---------  Start  -----------\n";
echo "-----------------------------\n";
sleep(2);
$removeLine(3);

echo 'hi';
sleep(2);
$removeLine();

echo 'how are you ?';
die();

very simple
Note the example below

$removeLine = function (int $count = 1) {
    foreach (range(1,$count) as $value){
        echo "\r\x1b[K"; // remove this line
        echo "\033[1A\033[K"; // cursor back
    }
};

echo "-----------------------------\n";
echo "---------  Start  -----------\n";
echo "-----------------------------\n";
sleep(2);
$removeLine(3);

echo 'hi';
sleep(2);
$removeLine();

echo 'how are you ?';
die();
黎夕旧梦 2024-11-16 12:30:53

PEAR 的 Console_ProgressBar 对于此类用例非常有用。

要完全清除控制台,您可以使用:

if($_SERVER['SHELL']) {
  print chr(27) . "[H" . chr(27) . "[2J";
}

这比跟踪要退格的字符数要容易得多。

PEAR's Console_ProgressBar is useful for this sort of use case.

To clear the console entirely, you can use:

if($_SERVER['SHELL']) {
  print chr(27) . "[H" . chr(27) . "[2J";
}

which is quite a bit easier than keeping track of how many characters to backspace.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文