2011-02-11 9 views
5

Básicamente, estoy buscando leer líneas de STDIN, pero no quiero bloquear mientras espero nuevos datos. Casi como usar una secuencia con un tiempo de espera.Lectura línea por línea de STDIN sin bloqueo

$stdin = fopen('php://stdin', 'r'); 

do { 
    $line = fgets($stdin); 

    // No input right now 
    if (empty($line)) { 
    // Do something before waiting for more input 
    } 
} while (1); 

Respuesta

7

lo descubrió, utilice stream_set_blockingDocs desactivar el bloqueo. Establece $line en false cuando no hay entradas disponibles.

+1

¿Sigue bloqueando en Windows? – CMCDragonkai

+0

Sé que esto es antiguo, pero he aquí por qué no funciona en Windows, desafortunadamente: https://bugs.php.net/bug.php?id=34972 – Hexus

Cuestiones relacionadas