PHP CLI: (enter tuşu beklemeden) daktiloya girişi tek bir karakteri nasıl okunur?

0 Cevap php

Yerde bu engelleyen girdi tamponlama çeşit var sanki ben at-a-time PHP komut satırından tek bir karakter okumak istiyorum, ancak öyle görünüyor.

Bu kodu düşünün:

#!/usr/bin/php
<?php
echo "input# ";
while ($c = fread(STDIN, 1)) {
    echo "Read from STDIN: " . $c . "\ninput# ";
}
?>

Girdi olarak "foo" yazarak (ve enter tuşuna basarak), ben alıyorum çıktı:

input# foo
Read from STDIN: f
input# Read from STDIN: o
input# Read from STDIN: o
input# Read from STDIN: 

input# 

Ben çıkış expecting olduğunu:

input# f
input# Read from STDIN: f

input# o
input# Read from STDIN: o

input# o
input# Read from STDIN: o

input# 
input# Read from STDIN: 

input# 

(Karakterleri okumak ve yazıldığı gibi işleniyor ile Yani,).

Ancak, şu anda, her karakter sonra girmek basıldığında okunuyor. Ben TTY girişini tampon bir şüphe var.

Sonuçta ben vb Yukarı ok, Aşağı ok, olarak basılmasını okumak mümkün olmak istiyorum

Şimdiden teşekkürler!

0 Cevap