ヘッダーあるいはメタデータをストリームまたはファイルポインタから取得する

# stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_get_meta_data — ヘッダーあるいはメタデータをストリームまたはファイルポインタから取得する

### 説明

stream_get_meta_data ( resource `$stream` ) : array

既存の `stream` に関する情報を返します。

### パラメータ

`stream`

  ストリームは fopen() か、 fsockopen() か、pfsockopen() で 作成されたいずれのものも指定できます。

### 返り値

結果の配列は次のような項目を含みます。

- timed_out (bool) - 最後に fread() または fgets() でデータを待っている時にタイムアウトした場合 `TRUE` を返します。

- blocked (bool) - ストリームがブロック I/O モードの場合に `TRUE` となります。 stream_set_blocking() を参照ください。

- eof (bool) - ストリームが EOF に 達した時 `TRUE` となります。 ストリームがソケットベースの場合、このメンバーは、 たとえ unread_bytes が 0 でなくても `TRUE` になる場合があることに注意してください。 まだデータがあるかどうかを調べるには、このパラメータではなく、 feof() を使ってください。

- unread_bytes (int) - PHP の 内部バッファにあるデータのバイト数。

  > 注意: スクリプト中でこの値を使用してはいけません。

- stream_type (string) - ストリームの下層にある実装を表すラベル

- wrapper_type (string) - ストリームを覆うプロトコルラッパーを表すラベル。 ラッパーについては サポートするプロトコル/ラッパー を参照ください。

- wrapper_data (mixed) - ストリームに付随しているラッパーの固有のデータ。 ラッパーとその固有の情報については、サポートするプロトコル/ラッパー を参照ください。

- mode (string) - このストリームに要求される アクセスモード（fopen() リファレンスの表 1 を参照ください）。

- seekable (bool) - 現在のストリーム内で 移動が可能かどうか。

- uri (string) - このストリームに関連付けられた URI / ファイル名。

### 例

例1 stream_get_meta_data() の例

`<?php
$url = 'http://www.example.com/';
if (!$fp = fopen($url, 'r')) {
trigger_error("Unable to open URL ($url)", E_USER_ERROR);
}
$meta = stream_get_meta_data($fp);
print_r($meta);
fclose($fp);
?>`

上の例の出力は、 たとえば以下のようになります。

    Array
    (
        [wrapper_data] => Array
            (
                [0] => HTTP/1.1 200 OK
                [1] => Server: Apache/2.2.3 (Red Hat)
                [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
                [3] => ETag: "b300b4-1b6-4059a80bfd280"
                [4] => Accept-Ranges: bytes
                [5] => Content-Type: text/html; charset=UTF-8
                [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
                [6] => Connection: close
                [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
                [8] => Age: 1164
                [9] => Content-Length: 438
            )

        [wrapper_type] => http
        [stream_type] => tcp_socket/ssl
        [mode] => r
        [unread_bytes] => 438
        [seekable] =>
        [uri] => http://www.example.com/
        [timed_out] =>
        [blocked] => 1
        [eof] =>
    )

### 注意

> 注意:

> この関数は、Socket 拡張モジュール で作成したソケットでは動作しません。

### 参考

- get_headers() - HTTP リクエストに対するレスポンス内で サーバーによって送出された全てのヘッダを取得する
- $http_response_header