我正在使用Windows上的PHP CLI編寫一些小型桌面命令行應用程序。Windows上的PHP CLI選項
我想知道是否和如何有可能於:
- 清除屏幕(CLS將是正常的命令,但執行exec()將不會使用它)
- 改變顏色,改變輸出部分的顏色(之前在節目看到了這一點)
- 製作水平更大的命令行 - 事情很快得到不可讀
是上述任何可能從PHP腳本里面?
我正在使用Windows上的PHP CLI編寫一些小型桌面命令行應用程序。Windows上的PHP CLI選項
我想知道是否和如何有可能於:
是上述任何可能從PHP腳本里面?
我用PHP創建了一個小型備份腳本,從我記得的情況來看,可以打印退格字符來刪除內容。雖然不是很理想。
只是google'd它:http://www.php.net/manual/en/features.commandline.php#77142
見PHP manual page for working with the commandline
直接回答您的每一個要點的:
有該網頁上給出了可以清除功能評論屏幕。我會在這裏爲您報價:
<?php
function clearscreen($out = TRUE) {
$clearscreen = chr(27)."[H".chr(27)."[2J";
if ($out) print $clearscreen;
else return $clearscreen;
}
?>
還有另一個評論,它解釋瞭如何改變顏色。同樣,我會引用它:
<?php
echo "\033[31m".$myvar; // red foreground
echo "\033[41m".$myvar; // red background
?>
和重置:
<?php
echo "\033[0m";
?>
你應該通過頁面的其餘部分閱讀整個負載上如何操作CLI的詳細建議。
你的問題的唯一部分,沒有答案是第三個要點。不幸的是,我不相信你能做到這一點,我不認爲可以水平調整Windows命令行窗口的大小。
希望有所幫助。
至於第三個問題,我建議你把默認命令行改爲Console 2。這是一個很好的替代品,不僅可以讓你使用任何你喜歡的寬度(只要它適合你的屏幕),還支持命令歷史記錄,製表符和一些UI糖。
在Windows上,在標準CLI提示符下,無法以顏色輸出(如Spudley的答案中所示)。
您可以通過右鍵單擊命令窗口的標題欄並選擇「屬性」,然後在「佈局」選項卡中修改值來更改窗口的大小。我認爲不可能在PHP中修改CLI的寬度。
你可以使用我寫here
功能檢查在Windows命令行窗口的寬度所提供的代碼將無法在Windows下工作,因爲PHP在Windows下做一些事情,以命令窗口。我不知道PHP做什麼,但我寫了一個簡單的Freebasic的程序,只有兩行:
cls
end
我然後編譯它和常規的命令行窗口下運行它。它清除了屏幕,沒有任何問題。然後我做在PHP如下:
<?php
echo "This is a test\n";
system("cls.exe");
exec("cls.exe");
passthru("cls.exe");
?>
當我跑了它什麼也沒做不僅僅是程序中的「這是一個測試」行。因此,使用PHP進行某種抑制會查找並停止發生的任何類型的轉義序列。在PHP中解決這個問題之前,您將永遠無法執行cls,也不能使用curses,ncurses或任何其他庫。我們需要做的是將諸如FreeBasic的窗口方法這樣的東西作爲某種類(或者只是一組C語言的例程),這些類將通過THAT語言的方法打開一個新窗口,並用它們來創建文本窗口。然後所有的轉義序列都可以工作。在此之前 - 他們不會。
我覺得奇怪的是,PHP最初是用Perl編寫的,Perl會在Windows上做ncurses,沒有任何問題。 Perl也將允許所有的轉義序列工作。所以在Windows編譯中就有一些導致這個問題的事情。