« file://
ftp:// »

http://

https://

http:// -- https:// — HTTP(s) URL へのアクセス

説明

HTTP GET メソッドを用いて、 ファイル/リソースに対する読み取り専用のアクセスが可能です。 仮想ホストにホスト名でアクセスするために、 Host: ヘッダが送信されます。 php.ini ファイルまたはストリームコンテキストによって user_agent 文字列を設定している場合、 それはリクエストの中にも含まれます。

ストリームにより、リソースの body にアクセスすることが できます。ヘッダは、$http_response_header 変数に保存されます。

(全てのリダイレクトが処理された後に)ドキュメント取得元のリソースの URL を知ることが 重要な場合、ストリームから返された一連のレスポンスヘッダを処理する必要があります。

from ディレクティブが設定されており、かつそれが コンテキストオプションとパラメータ で上書きされていない場合は、その値が From: ヘッダとなります。

利用法

  • http://example.com

  • http://example.com/file.php?var1=val1&var2=val2

  • http://user:password@example.com

  • https://example.com

  • https://example.com/file.php?var1=val1&var2=val2

  • https://user:password@example.com

オプション

ラッパーの概要
属性 サポートの可否
allow_url_fopen で制約される Yes
読み込み可 Yes
書き込み可 No
追記可能 No
同時読み書き可 N/A
stat() をサポート No
unlink() をサポート No
rename() をサポート No
mkdir() をサポート No
rmdir() をサポート No

例

例1 リダイレクト後の URL の検出

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

$meta_data = stream_get_meta_data($fp);
foreach ($meta_data['wrapper_data'] as $response) {

    /* リダイレクトされているか? */
    if (strtolower(substr($response, 0, 10)) == 'location: ') {

        /* $url をリダイレクト先に書き換える */
        $url = substr($response, 10);
    }

}

?>

注意

注意:

HTTPS がサポートされるのは、openssl 拡張モジュールが有効な場合のみです。

HTTP 接続は読み込みのみ可で、HTTP リソースにデータを書き込んだり ファイルをコピーしたりすることはできません。

たとえば POST および PUT リクエストを送信することも、 HTTP コンテキスト を使えば可能です。

参考

関連キーワード:
サポート   example   https   response   リソース   ヘッダ   ストリーム   コンテキスト   リダイレクト   meta   user   ラッパー   ホスト   送信   リクエスト   http   header   password   fopen   stream   substr   プロトコル   読み取り専用   仮想   Host
関連する関数・ページ:
context.http   function.stream-context-create   function.stream-get-meta-data   reserved.variables.httpresponseheader   wrappers.ftp   stream.contexts