Exemples
Exemple #1 Surveillance de STDIN
en utilisant l'API basique
<?php
function print_line($fd, $events, $arg)
{
static $max_requests = 0;
$max_requests++;
if ($max_requests == 10) {
// Sort de la boucle après 10 écritures
event_base_loopexit($arg[1]);
}
// Affiche la ligne
echo fgets($fd);
}
// Création de la base et de l'événement
$base = event_base_new();
$event = event_new();
$fd = STDIN;
// Définit les drapeaux de l'événement
event_set($event, $fd, EV_READ | EV_PERSIST, "print_line", array($event, $base));
// Définit la base de l'événement
event_base_set($event, $base);
// Activation de l'événement
event_add($event);
// Début de la boucle de l'événement
event_base_loop($base);
?>
Exemple #2 Surveillance de STDIN
en utilisant l'API des événements mis en tampon
<?php function print_line($buf, $arg) { static $max_requests; $max_requests++; if ($max_requests == 10) { event_base_loopexit($arg); } // Affiche la ligne echo event_buffer_read($buf, 4096); } function error_func($buf, $what, $arg) { // Gestion de l'erreur } $base = event_base_new(); $eb = event_buffer_new(STDIN, "print_line", NULL, "error_func", $base); event_buffer_base_set($eb, $base); event_buffer_enable($eb, EV_READ); event_base_loop($base); ?>