PHP CLI,Windows 7 CMD和CLS / FF需要相处。 (从CLI清除Win7 CMD和PHP)

好吧,现在,我一直在寻找一种方法来实现这一点,显然互联网上没有人知道是什么。通过互联网我的意思是谷歌的范围。 我正在用PHP编写终端应用程序,以便在Windows 7(x64 Ultimate)的花哨命令提示符下运行PHP CLI。在程序中,我想清除屏幕。屏幕上显示的数据可以是跨越任意数量的行的任意数量的字符。我不想要任何退格字符黑客或使用回车的说明。我想清除屏幕。 CMD有一个奇特的CLS命令就是这么做的。因此,当我运行PHP行
system('cls');
或执行clear screen命令的任何变体时(包括那个说使用
system("command /C cls");
的一个答案都不起作用)终端输出金星符号。女孩的标志,“颠倒的圣手榴弹”,无论你想称呼它。事实证明,这显然是一种显示换行符的方法(如果终端实际上​​表现得如此,则会清除屏幕。) 为什么PHP CLI认为显示CMD女孩会清除屏幕,我怎样才能让CMD真正清除?我试过给它发送一个换行符,给它发送一个女孩符号,发送它的筹码和饼干以及所有形式的好东西。没有任何效果。所以屏幕将永远不清楚,你可以想象当你不得不重新画一些东西时会很烦人。无论如何,欢迎你的帮助。     
已邀请:
这是迄今为止我发现的唯一但非常难看的方式:
public function clearStdin()
{
    for ($i = 0; $i < 50; $i++) echo "rn";
}
    
经过多次搜索,我终于找到了一个适用于Windows 7的依赖于ANSI的答案:
echo chr(27)."[H".chr(27)."[2J";
这在我的标准控制台中适用,因为我安装了Ansicon ...如果您遇到问题,可能需要尝试使用Console2。 如果您正在向公众分发CLI,那么这个解决方案不够好,但对于内部使用它可能是可接受的(即,如果您可以在所有机器上运行ANSI)。     
在试图找到解决方案之后,花了近一个小时没有运气,答案就在我面前...... 这是一个有点旧的ASCII命令的skool方法,它仍然适用于Windows DOS(大多数情况下)......我用它来改变输出的颜色。 如果您为转义键“ 033”的八进制引用,则DOS转义字符“[”和一个可以执行许多不同任务的键代码,例如更改颜色和...清除屏幕:) 使用以下命令清除php中的屏幕作为echo语句(我没有设法让system()使用此命令,但echo对我来说已经足够了)。
echo "33[2J"; //clears the screen
echo "33[1;1H"; //resets pointer back to 1,1 (top, left)
我真的希望这有助于某人:) 进一步阅读:http://www.robvanderwoude.com/ansi.php 干杯 达尔     
找到一种简单的方法,如果你从批处理文件运行PHP(我在Win7 x64终极上使用XAMPP):
cls
@c:xamppphpphp program_to_run.php
这个批处理文件在运行PHP之前会清除屏幕,甚至不会再显示命令promt,因为行的开头是@。 结果:从清晰的控制台屏幕开始! 你也可以使用 r来到一行的开头,所以如果你只需要重绘一行(例如一个进度指示器),这可以是一个解决方案。     

要回复问题请先登录注册