<?php 
 
use React\EventLoop\Factory; 
 
require __DIR__ . '/../vendor/autoload.php'; 
 
if (!defined('STDIN') || stream_set_blocking(STDIN, false) !== true) { 
    fwrite(STDERR, 'ERROR: Unable to set STDIN non-blocking (not CLI or Windows?)' . PHP_EOL); 
    exit(1); 
} 
 
$loop = Factory::create(); 
 
// read everything from STDIN and report number of bytes 
// for illustration purposes only, should use react/stream instead 
$loop->addReadStream(STDIN, function ($stream) use ($loop) { 
    $chunk = fread($stream, 64 * 1024); 
 
    // reading nothing means we reached EOF 
    if ($chunk === '') { 
        $loop->removeReadStream($stream); 
        stream_set_blocking($stream, true); 
        fclose($stream); 
        return; 
    } 
 
    echo strlen($chunk) . ' bytes' . PHP_EOL; 
}); 
 
$loop->run(); 
 
 |