PHPのhttp://ラッパーとは?HTTP/HTTPSストリームラッパーの使い方を解説
はじめに
https:// および https:// ラッパーは、HTTPプロトコル経由でリソースやファイルへの読み取り専用アクセスを可能にするストリームラッパーです。名前ベースの仮想ホストを扱う場合には、Host: ヘッダーが user_agent(php.ini で設定されている場合)とともに送信されます。
HTTPヘッダー情報は $http_response_header 変数に格納されます。このヘッダーを処理することで、from: ヘッダーの情報をもとに、ドキュメントがどのURLのリソースから取得されたものなのかを把握できます。
なお、HTTPSは php.ini の設定で openssl 拡張モジュールが有効になっている場合にのみ利用可能です。また、HTTP・HTTPSどちらの接続も読み取り専用であり、ファイルへの書き込みやコピーはサポートされていません。
使い方
ファイル名(URL)は、以下のようにさまざまな形式で指定できます。
https://localhost
https://example.com
https://localhost?name='Ram'&age=20
https://example.com
https://username:password@abc.com
使用例
次のスクリプトは、fopen() でHTTPのURLを開き、stream_get_meta_data() を使ってヘッダーのメタデータを取得する例です。
<?php
$url = 'https://www.tutorialspoint.com/php7/php7_closure_call.htm';
if (!$fp = fopen($url, 'r')) {
trigger_error("Unable to open URL ($url)", E_USER_ERROR);
}
$meta = stream_get_meta_data($fp);
print_r($meta);
?>
上記のスクリプトは、HTTPのURLからヘッダーのメタデータを読み取ります。実行すると、以下のような配列が出力されます。
Array(
[crypto] => Array(
[protocol] => TLSv1.2
[cipher_name] => ECDHE-RSA-AES128-GCM-SHA256
[cipher_bits] => 128
[cipher_version] => TLSv1/SSLv3
)
[timed_out] =>
[blocked] => 1
[eof] =>
[wrapper_data] => Array(
[0] => HTTP/1.0 200 OK
[1] => Age: 1310067
[2] => Cache-Control: max-age=2592000
[3] => Content-Type: text/html; charset=UTF-8
[4] => Date: Mon, 14 Sep 2020 17:15:36 GMT
[5] => Expires: Wed, 14 Oct 2020 17:15:36 GMT
[6] => Last-Modified: Sun, 30 Aug 2020 13:21:09 GMT
[7] => Server: ECS (nag/99AA)
[8] => Strict-Transport-Security: max-age=63072000; includeSubdomains
[9] => Vary: Accept-Encoding
[10] => X-Cache: HIT
[11] => X-Content-Type-Options: nosniff
[12] => X-Frame-Options: SAMEORIGIN
[13] => X-XSS-Protection: 1; mode=block
[14] => Content-Length: 24102
[15] => Connection: close
)
[wrapper_type] => http
[stream_type] => tcp_socket/ssl
[mode] => r
[unread_bytes] => 0
[seekable] =>
[uri] => https://www.tutorialspoint.com/php7/php7_closure_call.htm
)
この出力から、使用されているTLSプロトコルや暗号方式、HTTPステータスコード、キャッシュ情報など、通信に関する詳細なメタデータを確認できます。Web APIのレスポンス検証やデバッグの際に役立つでしょう。
-
PHPのpi()関数とは?使い方と定義済み定数との対応を実例付きで解説
pi()関数の定義と使い方PHPのpi()関数は、数学定数π(円周率)の値を返す関数です。戻り値はfloat型の「3.14159265359」であり、PHPにあらかじめ定義されている定数M_PIとまったく同じ値になります。構文pi ( void ) : floatパラメータこの関数は引数を受け取りません。引数なしでそのまま呼び出すことができます。戻り値pi()関数は数学定数πの値を返し、定義済みの数学定数M_PIと等価です。数式の中では、M_PIの代わりにpi()関数を使うこともできます。対応するPHPバージョンこの関数はPHP 4.x、PHP 5.x、PHP 7.xのすべてのバージョンで利用
-
PHPでXMLファイルの内容を出力(エコー)する方法をわかりやすく解説
はじめにPHPでは、各種ラッパー(wrappers)の仕組みによって、HTTP URLをローカルファイルと同じように扱うことができます。そのため、外部URL上にあるXMLファイルの内容も、通常の関数を使って簡単に取得・出力できます。この記事では、代表的な3つの方法をサンプルコード付きで紹介します。方法1:file_get_contents() を使う最もシンプルなのが file_get_contents() 関数を使う方法です。URLの内容を文字列として取得し、echo でそのまま出力できます。$file = file_get_contents(https://example.com/); e