web-dev-qa-db-ja.com

PHPのストリームコンテキスト-それは何ですか?

何時間も検索しましたが、PHPの「ストリームコンテキスト」が何であるかわかりません。APIを使用しようとしていますが、この「ストリームコンテキスト」の使用が含まれます。

ドキュメントには次のように書かれています。

コンテキストは、ストリームの動作を変更または強化するパラメータとラッパー固有のオプションのセットです。

  1. 何のパラメータ?
  2. 「ラッパーに固有の」オプションとはどういう意味ですか?
  3. どのストリーム?

これが私が話しているコードです:

// Encode the credentials and create the stream context.
$auth = base64_encode("$acctKey:$acctKey");
$data = array(
'http' => array(
'request_fulluri' => true,
// ignore_errors can help debug – remove for production. This option added in PHP 5.2.10
'ignore_errors' => true,
'header' => "Authorization: Basic $auth")
);
$context = stream_context_create($data);
// Get the response from Bing.
$response = file_get_contents($requestUri, 0, $context);
18
user2537201
  1. ストリームのプロパティを変更するコンテキストのパラメータ。

  2. オプションは、ストリームが使用しているラッパーに固有です。これらの例には、ファイル、すべての異なる_php://_ URI、HTTPラッパー(file_get_contents('http://example.com')を実行する場合など—​​ file_get_contents('some-file.txt')と同じではありません)が含まれます。

  3. どんなストリームでも!

この場合、ストリームコンテキストは_file_get_contents_に渡され、その認証ヘッダーとそれらのオプションをラッパーに送信して、_file_get_contents_がHTTPURLからコンテンツを取得できるようにします。

HTTPコンテキストオプションのリストを見つけることができます PHP Webサイト

7
Ry-

PHPのストリームコンテキストオプションとラッパーを理解するのに少し時間がかかりました。私は最終的に私の脳を包み込むのに役立ったものについての記事を書きました 理解する方法PHPストリームコンテキストオプションとラッパー 。それが役立つことを願っています。

流れてくるもの(ストリーミングデータ)を適切に処理するには、渡されるさまざまな種類のアイテム(データ型)を処理するための適切なコードが必要になります。さまざまな種類のデータ型を処理するためのツールは「パラメータ」です。

「コンテキスト」は、何が渡されるか(ストリーミングされるか)によって決定されます。したがって、「ストリーミング」(渡される)されるさまざまな「コンテキスト」(アイテムの種類)に対して、「パラメーター」(処理に必要なツール)「データ型」(アイテムの種類)が変更されます。

コンテキストという用語は、さまざまなデータ型について、状況が独自の必須パラメーターで一意であるという事実を単に参照しています。

PHPストリームラッパーは、データ型を処理するために必要なパラメーターを知るためにコンテキストを必要とします。

7
LoveFineArt
  1. http、request_fulluri、ignore_errors、headerはすべてパラメーターです。これらは、関数(この場合はfile_get_contents)の動作方法を変更します。

  2. ラッパーに固有のオプションは「http」のようなものです。これは適用できないため、ファイルシステムのファイルストリームでは使用しません。

  3. ストリームは、file_get_contentsが接続を開いたり、すべてを転送したりするときに発生するデータ自体の転送です。

1