Rechercher une fonction PHP

Exemples

Exemple #1 Annulation d'une demande

<?php
 
/* Sera appelé lorsque la fonction eio_nop() aura terminé */
 
function my_nop_cb($data$result) {
  echo 
"my_nop "$data"\n";
 }

// L'appel eio_nop() sera annulé
$req eio_nop(EIO_PRI_DEFAULT"my_nop_cb""1");
var_dump($req);
eio_cancel($req);

// Cette fois, eio_nop() sera exécuté
eio_nop(EIO_PRI_DEFAULT"my_nop_cb""2");

// Exécution des demandes
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
my_nop 2
 

Exemple #2 Appel de la fonction eio_chmod()

<?php
$temp_filename 
dirname(__FILE__) ."/eio-temp-file.tmp";
touch($temp_filename);

/* Sera appelé lorsque la fonction eio_chmod() aura terminé */
function my_chmod_callback($data$result) {
    global 
$temp_filename;

    if (
$result == && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo 
"eio_chmod_ok";
    }

    @
unlink($temp_filename);
}

eio_chmod($temp_filename0200EIO_PRI_DEFAULT"my_chmod_callback");
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_chmod_ok
 

Exemple #3 Fabrication d'une demande personnalisée

<?php
/* Fonction de rappel pour la fonction de rappel personnalisée */
function my_custom_callback($data$result) {
    
var_dump($data);
    
var_dump(count($result));
    
var_dump($result['data_modified']);
    
var_dump($result['result']);
}

/* La demande personnalisée */
function my_custom($data) {
    
var_dump($data);

    
$result  = array(
        
'result'        => 1001,
        
'data_modified' => "mes données personnalisées",
    );

    return 
$result;
}

$data "my_custom_data";
$req eio_custom("my_custom"EIO_PRI_DEFAULT"my_custom_callback"$data);
var_dump($req);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(26) "mes données personnalisées"
int(1001)
 

Exemple #4 Création d'un groupe de demandes

<?php
/*
 * Crée un groupe de demandes permettant d'ouvrir, de lire et de fermer un fichier
 */

$temp_filename dirname(__FILE__) ."/eio-file.tmp";
$fp fopen($temp_filename"w");
fwrite($fp"some data");
fclose($fp);

/* Sera appelé lorsque le groupe de demandes aura terminé */
function my_grp_done($data$result) {
 global 
$temp_filename;
 
var_dump($result == 0);
 @
unlink($temp_filename);
}

/* Sera appelé lorsque la fonction eio_open() aura terminé */
function my_grp_file_opened_callback($data$result) {
 global 
$my_file_fd$grp;

 
$my_file_fd $result;

 
var_dump($result 0);

 
// Crée une demande eio_read() et l'ajoute au groupe
 
$req eio_read($my_file_fd40EIO_PRI_DEFAULT"my_grp_file_read_callback");
 
eio_grp_add($grp$req);
}

/* Sera appelé lorsque la fonction eio_read() aura terminé */
function my_grp_file_read_callback($data$result) {
 global 
$my_file_fd$grp;

 
var_dump($result);

 
// Crée une demande eio_close() et l'ajoute au groupe
 
$req eio_close($my_file_fd);
 
eio_grp_add($grp$req);
}

$grp eio_grp("my_grp_done""my_grp_data");

// Crée une demande eio_open() et l'ajoute au groupe
$req eio_open($temp_filenameEIO_O_RDWR EIO_O_APPEND NULL,
  
EIO_PRI_DEFAULT"my_grp_file_opened_callback"NULL);
eio_grp_add($grp$req);
var_dump($grp);

eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)
 

Exemple #5 Utilisation de eio avec libevent

<?php
function my_eio_poll($fd$events$arg) {
    
/* Quelques régulations de libevent peuvent venir ici .. */
    
if (eio_nreqs()) {
        
eio_poll();
    }
    
/* .. et ici */
}

function 
my_nop_cb($d$r) {
    
var_dump($r); var_dump($d);
}

$base event_base_new();
$event event_new();

$fd eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT"my_nop_cb""nop data");
eio_mkdir("/tmp/abc-eio-temp"0750EIO_PRI_DEFAULT"my_nop_cb""nop data");
/* d'autres appels eio_* ici ... */


// Définit les drapeaux de l'événement
event_set($event$fdEV_READ /*| EV_PERSIST*/"my_eio_poll", array($event$base));

// Définit l'événement de base
event_base_set($event$base);

// Active l'événement
event_add($event);

// Démarre la boucle d'événements
event_base_loop($base);

/* La mêmme chose est disponible viia l'interface libevent bufferisé */
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"
 

Exemple #6 Utilisation de eio avec l'extension event

<?php
$base 
= new EventBase();

// Retourne le flux d'interrogation eio.
// Notez que cette variable doit être active tant que la boucle d'événements est en cours d'exécution.
$eio_stream eio_get_event_stream();

// Lie le flux d'interrogation eio à la boucle d'événement.
$poll_event = new Event($base$eio_streamEvent::READ, function () {
  if (
eio_nreqs()) {
    
eio_poll();
  }
});
$poll_event->add();

// Ajoute le job eio
eio_nop(EIO_PRI_DEFAULT, function () {
  echo 
"eio_nop\n";
});

// Ajout les événements
$timer Event::timer($base, function () {
  echo 
"2 seconds elapsed\n";
});
$timer->add(2);

// Envoi les événements.
$base->dispatch();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

eio_nop
2 seconds elapsed
 

Rechercher une fonction PHP

Version en cache

24/12/2024 15:04:03 Cette version de la page est en cache (à la date du 24/12/2024 15:04:03) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-eio.examples.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut