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