stream_notification_callback
コンテキストパラメーターを通知するコールバック関数
関数名:stream_notification_callback()
関数の説明:この関数は、ストリーム通知のコールバック関数を処理するために使用されます。
適用バージョン:PHP 4> = 4.3.0、PHP 5、PHP 7
構文:void stream_notification_callback(int $ notification_code、int $ severity、string $ message、int $ message_code、int $ bytes_transferred、int $ bytes_max)
パラメーター:
返品値:返品値なし。
例:
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) { switch ($notification_code) { case STREAM_NOTIFY_CONNECT: echo "连接建立成功!\n"; break; case STREAM_NOTIFY_AUTH_REQUIRED: echo "需要进行身份验证!\n"; break; case STREAM_NOTIFY_AUTH_RESULT: echo "身份验证结果:$message\n"; break; case STREAM_NOTIFY_FILE_SIZE_IS: echo "文件大小:$bytes_max 字节\n"; break; case STREAM_NOTIFY_PROGRESS: echo "已传输字节数:$bytes_transferred / $bytes_max\n"; break; case STREAM_NOTIFY_COMPLETED: echo "传输完成!\n"; break; case STREAM_NOTIFY_FAILURE: echo "传输失败!\n"; break; case STREAM_NOTIFY_RESOLVE: echo "正在解析主机信息...\n"; break; case STREAM_NOTIFY_MIME_TYPE_IS: echo "MIME 类型:$message\n"; break; default: echo "未知通知类型\n"; break; } } $stream_context = stream_context_create(); stream_context_set_params($stream_context, ['notification' => 'stream_notification_callback']); $file = fopen('http://example.com', 'r', false, $stream_context);
上記の例では、Stream_Notification_Callbackというコールバック関数を定義して、ストリーム通知を処理します。この関数は、着信通知_Codeパラメーターに基づいてさまざまな通知タイプを判断し、対応する処理を実行します。 URLリソースを開くときに、stream_context_create()関数を介してストリームコンテキストを作成し、stream_context_set_params()関数で定義したコールバック関数の通知パラメーターを設定します。最後に、FOPEN()関数を使用してURLリソースを開き、対応する通知をトリガーし、コールバック関数を介して対応する情報を出力します。