PHPリファレンス(逆引き)

PHPリファレンス
 
ストリームを使う(stream_context_create())
スポンサードリンク

ストリームは、さまざまなリソースに共通した手順でアクセスする手段になります。

以下に、ストリームを使ったいろいろなリソースのアクセス例を見てみます。 

  「http」プロトコルを使ってファイル「test.html」をオープンしています。

$handle = fopen("http://www.xxx.com/test.html", "r");


  「ftp」プロトコルを使ってファイル「test.txt」をオープンしています。

$handle = fopen("ftp://user:password@xxx.com/test.txt", "w");


  「file」プロトコルを使ってファイル「test.txt」をオープンしています。

$handle = fopen("file:///temp/test.txt", "r");


上記のように、「プロトコル://パス」の形式で指定すると、指定したプロトコルに対応した、プロトコルラッパーでリソースにアクセスします。
「http」であれば「httpプロトコルラッパー」、「ftp」であれば「ftpプロトコルラッパー」、「file」であれば「fileプロトコルラッパー」などがあります。

   以下はプロトコルを指定していませんが、「fileプロトコルラッパー」でリソースにアクセスします。

$handle = fopen( "c:/temp/test.txt", "r");


上記のような、プロトコルラッパーは、コンテキストを指定してプロトコルラッパー固有のオプション動作を指定することが出来ます。


以下に、HTTPプロトコルラッパーのコンテキストを記述します。

  HTTPプロトコルの主なコンテキスト
オプション 説明 デフォルト
method GET 、 POST などのリクエストメソッド名 GET
header リクエストに付加されるヘッダ。  
user_agent User-Agent: ヘッダとして送信する値。 header オプションで user-agent が 定義されていない 場合のみ使用されます。 php.ini での user_agent の設定
content ヘッダの後に送信する追加データ。通常、POST または PUT リクエストの際に使用されます。  


コンテキストを生成するには、stream_context_create()関数を使用します。
stream_context_create( オプション ) 指定したオプションから、コンテキストを生成します。
指定するオプションは配列になります。


例)
 HTTPラッパーに、コンテキストを指定してファイル「test.html」をオープンする

// ポストするデータを連想配列で生成
$data = http_build_query(
          array(
           'param1' => 'value1',
           'param2' => 'value2'
          )
        );

// コンテキストのオプションを生成
$option = array('http' =>
        array(
           'method' => 'POST',
           'header' => 'Content-type: application/x-www-form-urlencoded',
           'content' => $data
        )
     );

$context = stream_context_create( $option ); // コンテキストの生成

// 生成したコンテキストを指定してファイルをオープン
$handle = fopen("http://www.xxx.com/test.html",  "r", $context);



スポンサード リンク


ストリームを使う( stream_context_create() )
ファイルのオープン/クローズ( fopen()、fclose() )
ファイルから1文字づつ読み込む( fgetc() )
ファイルから1行づつ読み込む( fgets() )
ファイルからフォーマットに従って読み込む( fscanf() )
ファイルの全レコードを一度に読み込む( file()、file_get_contents() )
バイナリファイルを読み込む( fread() )
ファイルに書き込む( fwrite()、fputs() )
ファイルに書き込む( file_put_contents() )
ファイルの終端を確認する( feof() )
ファイルをロックする( flock() )
CSVファイルを読み込む( fgetcsv() )
ファイルを全レコード読み込んで標準出力に出力( readfile() )
ファイルポインタ操作( fseek()、rewind()、ftell() )
一時ファイルの作成( tmpfile() )

基本API2へ
忘れっぽいエンジニアのPHPリファレンス TOPへ