関数・クラス解説

EventHttp::setCallback

version:PECL event >= 1.4.0-beta (公式)

Sets a callback for specified URI

公式リファレンス

書式

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

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

説明

Sets a callback for specified URI.

パラメータ

path
The path for which to invoke the callback.
cb
The callback callable that gets invoked on requested path . It should match the following prototype:
req
EventHttpRequest object.
arg
Custom data.
arg
Custom data.

返値

Returns TRUE on success. Otherwise FALSE.

サンプル

例1 EventHttp::setCallback() example

/*  * Simple HTTP server.  *  * To test it:  * 1) Run it on a port of your choice, e.g.:  * $ php examples/http.php 8010  * 2) In another terminal connect to some address on this port  * and make GET or POST request(others are turned off here), e.g.:  * $ nc -t 127.0.0.1 8010  * POST /about HTTP/1.0  * Content-Type: text/plain  * Content-Length: 4  * Connection: close  * (press Enter)  *  * It will output  * a=12  * HTTP/1.0 200 OK  * Content-Type: text/html; charset=ISO-8859-1  * Connection: close  *  * 3) See what the server outputs on the previous terminal window.  */ 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 $s, PHP_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 <= 0 || $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(4, 8)); $http->setCallback("/about", "_http_about"); $http->setDefaultCallback("_http_default", "custom data value"); $http->bind("0.0.0.0", 8010); $base->loop();

上の例の出力は、たとえば以下のようになります。

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

参考

  • EventHttp::setDefaultCallback() - Sets default callback to handle requests that are not caught by specific callbacks
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール