2014-06-20 3 views
11

Wenn PHP-Skript über die Befehlszeile (Windows) ausgeführt, wie kann die Konsole Bildschirm von Skript löschen.Wie kann Bildschirm in PHP CLI löschen (wie Cls Befehl)

zum Beispiel:

while(true){ 
    // sleep for 10 seconds , then clear the console 
    sleep(10); 

    // below command execute to clear the console windows 
    **COMMAND** 
} 
+0

'System ('cls');' ' – colburton

+2

System ('cls');' für mich nicht in Win7 funktioniert fragt – JoshuaDavid

Antwort

9

Für Windows-Benutzer:

system('cls'); 

Für Linux-Benutzer:

system('clear'); 
+0

Scheint, dass 'Clear' nur funktioniert [in Powershell] (http://superuser.com/questions/585238/clear-windows-command-prompt-screen-using-keyboard-shortcuts#comment1122664_585241). Wenn Sie Ihr PHP-Skript in der reinen Windows-Befehlszeile ausführen, sollten Sie immer noch 'cls' verwenden. – trejder

+8

System ("cls") wird ein chr (12) auf Ihrem Bildschirm ("form feed" -Zeichen) setzen, wird es aber nicht löschen. – dkellner

+4

Funktioniert nicht unter Windows. – Black

0

Sie können dies tun, indem Sie:

ncurses_clear(); 

Quelle: http://www.php.net/manual/en/function.ncurses-clear.php

Edit: Wie trejder sagt diese Lösung nur für die unterstützten Plattformen ist, es Scheint, Windows ist nicht einer von ihnen.

+5

OP für einen ** Windows-** - basierte soluton! 'ncurses' library [ist ** NOT ** verfügbar] (http://php.net/manual/en/intro.ncurses.php) für Windows-Plattform in PHP. – trejder

+0

@trejder Ich aktualisierte meine Antwort. –

4

eine Lösung gefunden, die sowohl in der cmd und GitBash arbeitet. Dies ist jedoch die hässlichste Implementierung des Clearing-Konsolen-Bildschirms, die ich mir vorstellen kann. Schade, dass es keine funktionierende Alternative gibt.

Die "Magie" ist ... stecken Konsole mit fünfzig neuen Linien, wie folgt aus:

public function clearStdin() 
{ 
    for ($i = 0; $i < 50; $i++) echo "\r\n"; 
} 

Dies ist eine modifizierte Version von this non-working (for me) post from 2006 (fixed?).

8

Wenn Sie kein Glück mit den Lösungen oben hatte, ist folgendes zu beachten

echo chr(27).chr(91).'H'.chr(27).chr(91).'J'; //^[H^[J 

Hoffe, es hilft.

Quelle: http://pank.org/blog/2011/02/php-clear-terminal-screen.html

+0

Dies scheint viel leistungsfähiger als 'system ('clear')'. Ist es auch plattformübergreifend? Was sind die Nachteile? –

+0

funktioniert nicht auf Windows –

Verwandte Themen