Die Witze die Anekdoten

Die Arbeit mit ANSI von der Konsole

Des Novembers 20, 2008 · 11:03 дп Alex Snet  -  11 Kommentare

Ob man програму für die Konsole häufig machen muss? Nicht so häufig, ja? Und ich beschäftige mich die letzte Zeit nur damit eben … Deshalb hat die Klasse (gemacht in Wirklichkeit hat noch sehr seit langem gemacht). А вот я последнее время только этим и занимаюсь… Поэтому сделал класс (на самом деле сделал еще очень давно).

Diese Klasse lässt zu, solche einfachen Operationen, wie die Einblendung des Textes, die Einblendung des Hintergrunds des Buchstabens oder des Textes, die Anlage des Cursors auf die nötige Position, die Auswahl der Konsole für die Schlussfolgerung (1~8) und die gerade Hainbuche der gedrückten Tasten zu erfüllen.


<? php 
class console 
{ 
    const TARGET_OUTPUT = "php://output"; ; 
    const TARGET_STDOUT = "php://stdout"; ; 
    const TARGET_STDERR = "php://stderr"; ; 
    const TARGET_STDIN = "php://stdin"; ; 
 
    protected static $color = array ( ( 
        ' gray ' => 30, , 
        ' black ' => 30, , 
        ' red ' => 31, , 
        ' green ' => 32, , 
        ' yellow ' => 33, , 
        ' blue ' => 34, , 
        ' magenta ' => 35, , 
        ' cyan ' => 36, , 
        ' white ' => 37, , 
        ' default ' => 39  
    ); 
 
    protected static $bgcolor = array ( ( 
        ' gray ' => 40, , 
        ' black ' => 40, , 
        ' red ' => 41, , 
        ' green ' => 42, , 
        ' yellow ' => 43, , 
        ' blue ' => 44, , 
        ' magenta ' => 45, , 
        ' cyan ' => 46, , 
        ' white ' => 47, , 
        ' default ' => 49, , 
    ); 
 
    protected static $style = array ( ( 
        ' default ' => ' 0 ', , 
 
        ' bold ' => 1, , 
        ' faint ' => 2, , 
        ' normal ' => 22, , 
 
        ' italic ' => 3, , 
        ' notitalic ' => 23, , 
 
        ' underlined ' => 4, , 
        ' doubleunderlined ' => 21, , 
        ' notunderlined ' => 24, , 
 
        ' blink ' => 5, , 
        ' blinkfast ' => 6, , 
        ' noblink ' => 25, , 
 
        ' negative ' => 7, , 
        ' positive ' => 27, , 
    ); 
 
       private $text = "";   ""; 
 
    //Outputing 
    public function draw ($text = ") $text='') 
    { 
        echo $this-> text. $ text; text.$text; 
        $this-> text = ";  = ''; 
        return $this;  
    } 
 
    //Input 
    public function readNumeric () ) 
    { 
        $stdin = fopen (' php://stdin ', ' r '); ('php://stdin', 'r'); 
        $line = trim (fgets ($stdin)); (fgets($stdin)); 
        fscanf ($stdin, "%d\n", $number); , "%d\n", $number); 
          return $number;  
    } 
    public function readString () ) 
    { 
        $stdin = fopen (' php://stdin ', ' r '); ('php://stdin', 'r'); 
        $line = trim (fgets ($stdin)); (fgets($stdin)); 
          fscanf ($stdin, "%s\n", $string); , "%s\n", $string); 
          return $string;  
    } 
 
    //Sound 
    public function beep () {echo "\007"; return $this;} )                            { echo "\007"; return $this; } 
    public function setSoundHerz ($herz=100) {echo "\033 [10; {$herz}]"; return $this;} $herz=100)            { echo "\033[10;{$herz}]"; return $this; } 
    public function setSoundLong ($milliseconds=500) {echo "' 033 [11; {$milliseconds}]"; return $this;} $milliseconds=500)    { echo "'033[11;{$milliseconds}]"; return $this; } 
 
    //Cursor position 
    public function toPos ($row = 1, $column = 1) {echo "\033 [{$row}; {$column} H"; return $this;} $row = 1, $column = 1 )    { echo "\033[{$row};{$column}H"; return $this; }
    public function cursorUp ($lines=1) {echo "\033 [{$lines} A"; return $this;} $lines=1)                { echo "\033[{$lines}A"; return $this; } 
    public function cursorDown ($lines=1) {echo "\033 [{$lines} B"; return $this;} $lines=1)            { echo "\033[{$lines}B"; return $this; } 
    public function cursorRight ($columns=1) {echo "\033 [{$columns} C"; return $this;} $columns=1)            { echo "\033[{$columns}C"; return $this; } 
    public function cursorLeft ($columns=1) {echo "\033 [{$columns} D"; return $this;} $columns=1)            { echo "\033[{$columns}D"; return $this; } 
 
    //Text colors 
    public function setStyle ($style ='default ') {$this-> text. = "\033 [". $this-> style [$style]. "m"; return $this;} $style='default')        { $this->text .= "\033[".$this->style[$style]."m"; return $this; } 
    public function setColor ($color ='default ') {$this-> text. = "\033 [". $this-> color [$style]; return $this;} $color='default')        { $this->text .= "\033[".$this->color[$style]; return $this; } 
    public function setBgColor ($color ='default ') {$this-> text. = "\033 [". $this-> bgcolor [$style]; return $this;} $color='default')    { $this->text .= "\033[".$this->bgcolor[$style]; return $this; } 
 
    //Application 
    public function setAppName ($name = ") {echo" \033] 0; {$name} \007 "; return $this;} $name='')            { echo "\033]0;{$name}\007"; return $this; } 
    public function setTitle ($name = ") {echo" \033] 2; {$name} \007 "; return $this;} $name='')                { echo "\033]2;{$name}\007"; return $this; } 
    public function setIcon ($name = ") {echo" \033] 1; {$name} \007 "; return $this;} $name='')                { echo "\033]1;{$name}\007"; return $this; } 
 
    //Other 
    public function clear () {echo "\033c"; return $this;} )                            { echo "\033c"; return $this; } 
    public function console ($num=1) {echo "\033 [12; {$num}]"; return $this;} $num=1)                    { echo "\033[12;{$num}]"; return $this; } 
} 
?>

Ebenso es herunterladen es kann mit phpclasses.org nach dieser Verbannung: http://www.phpclasses.org/browse/package/4969.html
Danke für die Aufmerksamkeit.

Тэги: , , ,

Und noch schrieb ich über:
None Found

11 Kommentare → “die Arbeit mit ANSI von der Konsole”


  1. surger

    20 Jammernd, 2008,

    Sogar die Nostalgie nach den Terminalen hat … gelocht
    Спасиба, камрад

    Zu antworten

  2. Alex Snet

    20 Jammernd, 2008,

    Ist immer froh, zu helfen! =)

    Zu antworten

  3. wtask

    16 Dek, 2008

    Danke, wir werden anschauen. Periodisch werden stand- скриптики gefordert.

    Zu antworten

  4. Emilis

    02 Janw, 2009

    Kann bei Ihnen sein isst auch das Beispiel, wie diese Klasse zu verwenden?

    Zu antworten

  5. Alex Snet

    02 Janw, 2009

    Emilis:
    Kann bei Ihnen sein isst auch das Beispiel, wie diese Klasse zu verwenden?

    Ja, natürlich. Und es was für Sie unverständlich ist?

    Zu antworten

  6. Pepe

    20 Mar, 2009

    Hi

    Do you have an example how to use this class?
    Thanks.
    Pepe

    Zu antworten

  7. Val

    29 Okt, 2009

    Der gute Tag; und Sie versuchten nicht, diese Klasse unter windows zu verwenden?

    Zu antworten

    • Alex Snet

      03 Jammernd, 2009,

      Nein, versuchte nicht. Ehrlich gesagt bezweifle ich was unter виндовс stand- ASCII die Mannschaften gehen werden.

      Zu antworten

      • Val

        03 Jammernd, 2009,

        Richtig bezweifeln Sie — es arbeiten die Standmannschaften aus пхп auf винде nicht.

        So den Bildschirm aus пхп ich reinigen konnte nur mittels des Aufrufs der entsprechenden Methode aus dllины.

        Was auffallend ist, im Python unter selb винду arbeitet subprocess.call ([' cmd ', '/c ', ' cls '])

        Und in пхп – gibt es.

        Zu antworten

        • Alex Snet

          04 Jammernd, 2009,

          Val, Sie alle verwirren Sie etwas. Im gegebenen Kode gibt es keinen Aufruf anderer Anlagen. Hier drucken wir спецсимволы einfach, die diese oder jene Operation erfüllen. Здесь мы просто печатаем спецсимволы, которые выполняют ту или иную операцию.
          Betreffs des Aufrufs der Standanlagen – bei php gibt es viel Varianten wie es wird. Zum Beispiel: exec, shell_exec, system, etc … exec, shell_exec, system, etc…
          Deshalb wird es dass mit einer Mannschaft vollkommen möglich sein, nicht, und mit anderem vollkommen zu arbeiten.

          Zu antworten

  8. Val

    04 Jammernd, 2009,

    Alex, ich habe dieser Funktionen in php und alle Weisen "auf einfache Weise" methodisch ausgelesen, cls herbeizurufen: und command/c cls, und cmd/c cls, und direkt, chr (27), “[H”, chr (27), “[2J” und überhaupt allen zu drucken.

    Arbeiten nicht. D.h. überhaupt — geben sie auf die Konsole richtig ASCII die Mannschaften aus, und ich kann sie beobachten: ← [2J, ♀ ←[2J, ♀

    Das Internet hat mich vom Folgenden glücklich gemacht: “Windows NT does not support ANSI.SYS escape sequences in Win32 Console applications”

    php.exe — ist es win32 console app offenbar, deshalb arbeitet nicht.

    Die Frage darin, warum arbeitet in python.exe.

    Zu antworten

Die Spur abzugeben.

1 2 3 4 5 6 7 8 9 10