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 コンテキスト を使えば可能です。