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$fdEV_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($buf4096);
}

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);

?>