テストコードは次のとおりです:
コードをコピー コードは次のとおりです:
$fp=fopen("http: //www .sina.com.cn", 'r');
$stream_meta = stream_get_meta_data($fp);
print_r($stream_meta);
?>
ローカル マシンの出力は次のとおりです:
Array
(
[wrapper_data] => 1] => 日付: 火曜日、06 Dec 2011 10:08:11 GMT
07:12 GMT
[4] => 受け入れ範囲: バイト
[5] => -age=60
[7] => 2011 年 12 月 6 日火曜日 10: 09:11 gmt [timed_out] =>
[ブロック] => 1
[eof] =>
array stream_get_meta_data (int $fp)
既存のストリームの情報を返します。 fopen()、fsockopen()、および pfsockopen() を介して確立された任意のストリームを指定できます。返される配列には次の項目が含まれます:
timed_out (bool) - fread() または fgets() への最後の呼び出しでデータの待機中にストリームがタイムアウトした場合は TRUE。
blocked (bool) - ストリームがブロッキング IO モードの場合は TRUE。 stream_set_blocking() を参照してください。
eof (ブール値) - ストリームがファイルの終わりに到達した場合は TRUE。ソケット ストリームの場合、unread_bytes がゼロ以外の場合でも TRUE になる可能性があることに注意してください。さらに読み取り可能なデータがあるかどうかを判断するには、代わりに feof() を使用してこの項目の値を読み取ります。
unread_bytes (int) - PHP 自体の内部バッファーに現在あるバイト数。
注: この値をスクリプトで使用しないでください。
次の項目は PHP 4.3 の新機能です:
stream_type (文字列) - ストリームの基礎となる実装を説明するアノテーション。
wrapper_type (文字列) - ストリームの階層化プロトコル ラッパー実装を説明する注釈。カプセル化プロトコルの詳細については、「サポートされるプロトコル」と「カプセル化プロトコル」を参照してください。
wrapper_data (混合) - 現在のストリームに添付されたラッピング プロトコル データ。カプセル化プロトコルとそのデータの詳細については、「サポートされているプロトコルとカプセル化プロトコル」を参照してください。
filters (配列) - 現在のストリームに重ね合わされるフィルターの名前を含む配列。フィルターについては、使用可能なフィルターのリストについて付録に記載されています。
注:
この関数は PHP 4.3 で導入されました。このバージョンより前では、socket_get_status() を使用して最初の 4 つの項目を取得でき、ソケットベースのストリームにのみ使用できます。
PHP 4.3 以降のバージョンでは、socket_get_status() はこの関数のエイリアスです。
注: この関数は、ソケット拡張ライブラリを通じて作成されたストリームでは使用できません。
次の項目は PHP 5.0 の新しい項目です:
mode (文字列) - 現在のストリームに必要なアクセスのタイプ (fopen() の表 1 を参照)。
seekable (bool) - 現在のストリームでシーク可能かどうか。
uri (文字列) - 現在のストリームに関連付けられた URI またはファイル名。