windows php cli,Windows上的PHP CLI选项

我现在正在Windows上使用PHP CLI编写一些小型桌面命令行应用程序。

我想知道是否以及如何可能:

清除屏幕(cls将是正常的命令,但exec()将无法使用它)

更改颜色,更改输出部分的颜色(之前在程序中看到)

使命令行横向变大 - 事情很快变得不可读

PHP脚本中是否有以上任何一种可能?

在Windows上,在标准CLI提示符中,您无法以彩色输出(如Spudley的答案)。

您可以通过右键单击命令窗口的标题栏并选择"属性",然后在"布局"选项卡中修改值,以用户身份更改窗口大小。我认为不可能在PHP中修改CLI的宽度。

您可以使用我在此处编写的函数在Windows上检查CLI窗口的宽度

有关使用命令行的信息,请参阅PHP手册页

要直接回答每个要点:

该页面上有一个注释,它提供了一个可以清除屏幕的功能。我会在这里为你引用:

function clearscreen($out = TRUE) {

$clearscreen = chr(27)."[H".chr(27)."[2J";

if ($out) print $clearscreen;

else return $clearscreen;

}

?>

还有另一条评论解释了如何改变颜色。我再说一遍:

echo"\033[31m".$myvar; // red foreground

echo"\033[41m".$myvar; // red background

?>

并重置:

echo"\033[0m";

?>

您应该阅读该页面的其余部分,以获取有关如何操作CLI的更多建议。

你问题中唯一没有答案的部分是第三点。遗憾的是,我不相信你能做到这一点,我认为不可能横向调整Windows命令行窗口的大小。

希望有所帮助。

提供的代码在Windows下无法运行,因为Windows下的PHP会对命令窗口执行某些操作。我不确定PHP做了什么,但我写了一个简单的Freebasic程序只有两行:

cls

end

然后我编译它并在常规命令行窗口下运行它。它清除屏幕没有任何问题。然后我在PHP中执行以下操作:

echo"This is a test

";

system("cls.exe" );

exec("cls.exe" );

passthru("cls.exe" );

?>

当我运行该程序时,它只做了"这是一个测试"行。因此,PHP会发生某种抑制,它会查找并阻止任何类型的转义序列的发生。在PHP中修复此问题之前 - 您将永远无法执行cls,也无法使用curses,ncurses或任何其他库。必须要做的是将FreeBasic的窗口方法集成为某种类(或者只是一组C例程),这些类将通过THAT语言的方法打开一个新窗口并使用它们来执行文本窗口。然后所有的转义序列都可以工作。在那之前 - 他们不会。

我觉得奇怪的是,PHP最初是用Perl编写的,而Perl将在Windows上进行ncurses而没有任何问题。 Perl还允许所有转义序列工作。所以在Windows编译中只有一些事情正在导致这个问题。

至于第三个问题,我建议你使用控制台2的默认命令行。它是一个很好的替代品,不仅可以让你使用你喜欢的任何宽度(只要它适合你的屏幕),而且还支持命令历史记录,标签和一些UI糖。

我用PHP创建了一个小的备份脚本,从我记忆中,你可以打印退格字符来删除内容。虽然不是很理想。

只是google'd:http://www.php.net/manual/en/features.commandline.php#77142

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值