在整数递增的同时,在同一输出行上回显整数?

11

我一直想知道在PHP中是否有可能做到以下操作:

for($x = 1; $x <= 50; $x++)
    echo $x;

这会输出:

1234 etc...

显然不可能是特定的那段代码,因为它几乎是瞬间完成的,你甚至看不到增量的变化。 现在我有一个问题:能否通过echo它,删除它,再重复吗?简单来说,输出应该从开始到结束都在同一行上。我不知道如何解释或展示,但这里有个例子(有点儿):

1 (backspace) 2 (backspace) etc...

我希望你能理解,我不知道该怎么解释了 .-.

感谢你的帮助!

编辑:顺便提一下,这是针对控制台的,抱歉我忘记包含这个信息了。不是针对网页!


我认为仅使用PHP不可能实现这一点... - Oussama Jilal
你的意思是“回显它,删除它,重复吗?”你想在输出2时删除1吗?就像实时更新一样? - lusketeer
输出$x的值,然后将$x字符串中的每个字符删除一个退格或删除字符。尝试使用chr(127)。 - Waygood
是的,我希望它像实时更新一样 :) - user1488335
尝试执行 echo $x.str_repeat(chr(127), strlen($x)); - Waygood
3个回答

30

如果您在CLI中运行代码:

echo $x."\r";

我喜欢这种方法比我的"CR but no LF"更好,加1。 - Waygood

1
你可以用Javascript很容易地实现这个功能,但由于PHP生成页面并将其发送出去,所以这不是你可以直接使用PHP完成的事情,至少如果你最终的目的是允许用户在发生更改时看到这些更改。
编辑:假设你在网页上,在控制台方面不确定,因为你更新了问题。

1

通常情况下,PHP的输出会被发送到HTTP响应设置中,因此不可能控制它。出现在用户屏幕上的所有内容都经过了网络,您无法再对其进行控制。

但是,如果您在CLI环境中运行,则有完整的基于字符的窗口绘图库,例如ncurses,您可以使用它来在终端中移动像素(在这种情况下是字符)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接