$file) { $newkey = basename($file); if (is_string($id)) { $newkey = $id; } $pipes[$newkey] = popen(sprintf(TAIL_CMD, escapeshellarg($file)), 'r'); stream_set_blocking($pipes[$newkey], 0); } $w = null; $e = null; while (true) { $read = $pipes; $modified = stream_select($read, $w, $e, null); if ($modified > 0) { foreach ($read as $file => $pipe) { $file = explode('.', $file)[0]; while ($line = fgets($pipe)) { echo $file, ': ', $line; } } } }