Rechercher une fonction PHP

EventHttp::setCallback

(PECL event >= 1.4.0-beta)

EventHttp::setCallbackDéfinit une fonction de rapppel pour une URI spécifique

Description

public EventHttp::setCallback ( string $path , string $cb [, string $arg ] ) : void

Définit une fonction de rapppel pour une URI spécifique.

Retour à la première page de Manuel PHP  Table des matières Haut

Liste de paramètres

path

L'URI pour laquelle la fonction de rappel doit être invoquée.

cb

La fonction de rappel callable qui sera invoquée lors d'une demande sur l'URI path. Elle doit correspondre au prototype suivant :

callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] ) : void

req

Un objet EventHttpRequest.

arg

Données personnalisées.

arg

Données personnalisées.

Retour à la première page de Manuel PHP  Table des matières Haut

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Retour à la première page de Manuel PHP  Table des matières Haut

Exemples

Exemple #1 Exemple avec EventHttp::setCallback()

<?php
/*
 * Serveur HTTP simple.
 *
 * Pour le tester :
 * 1) Exécutez-le sur le port de votre choix, i.e. :
 * $ php examples/http.php 8010
 * 2) Dans un autre terminal, connectez-vous sur une adresse de ce port
 * et réalisez une requête GET ou POST (les autres sont désactivées ici), i.e.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * Il devrait afficher :
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) Voir ce qu'affiche le serveur sur le précédent terminal.
 */

function _http_dump($req$data) {
    static 
$counter      0;
    static 
$max_requests 2;

    if (++
$counter >= $max_requests)  {
        echo 
"Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo 
__METHOD__" called\n";
    echo 
"request:"var_dump($req);
    echo 
"data:"var_dump($data);

    echo 
"\n===== DUMP =====\n";
    echo 
"Command:"$req->getCommand(), PHP_EOL;
    echo 
"URI:"$req->getUri(), PHP_EOL;
    echo 
"Input headers:"var_dump($req->getInputHeaders());
    echo 
"Output headers:"var_dump($req->getOutputHeaders());

    echo 
"\n >> Sending reply ...";
    
$req->sendReply(200"OK");
    echo 
"OK\n";

    echo 
"\n >> Reading input buffer ...\n";
    
$buf $req->getInputBuffer();
    while (
$s $buf->readLine(EventBuffer::EOL_ANY)) {
        echo 
$sPHP_EOL;
    }
    echo 
"No more data in the buffer\n";
}

function 
_http_about($req) {
    echo 
__METHOD__PHP_EOL;
    echo 
"URI: "$req->getUri(), PHP_EOL;
    echo 
"\n >> Sending reply ...";
    
$req->sendReply(200"OK");
    echo 
"OK\n";
}

function 
_http_default($req$data) {
    echo 
__METHOD__PHP_EOL;
    echo 
"URI: "$req->getUri(), PHP_EOL;
    echo 
"\n >> Sending reply ...";
    
$req->sendReply(200"OK");
    echo 
"OK\n";
}

$port 8010;
if (
$argc 1) {
    
$port = (int) $argv[1];
}
if (
$port <= || $port 65535) {
    exit(
"Invalid port");
}

$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET EventHttpRequest::CMD_POST);

$http->setCallback("/dump""_http_dump", array(48));
$http->setCallback("/about""_http_about");
$http->setDefaultCallback("_http_default""custom data value");

$http->bind("0.0.0.0"8010);
$base->loop();
?>

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

a=12
HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Retour à la première page de Manuel PHP  Table des matières Haut

Voir aussi

  • EventHttp::setDefaultCallback() - Définit la fonction de rappel par défaut pour gérer les requêtes qui ne sont pas attrappées par des fonctions de rappel spécifiques
Rechercher une fonction PHP

Version en cache

24/12/2024 00:54:36 Cette version de la page est en cache (à la date du 24/12/2024 00:54:36) 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-eventhttp.setcallback.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