PHPストリームAPIは、PHP拡張モジュールにファイルおよびソケット処理
用の統一化された手段を導入するものです。
共通の操作を行なうための標準関数を有する単一のAPIを使用することに
より、ストリームAPIは拡張モジュールがファイル、ソケット、URL、メモリ
スクリプトが定義したオブジェクトにアクセスすることを可能にします。
ストリームは、新規ストリームを登録するために動的にロードされる
モジュール(およびスクリプト!)とすることができる実行時に拡張可能な
APIです。
ストリームAPIの目的は、ファイル、URL、その他のストリームにできるデータ
ソースを平易な統一されたAPIにより、開発者が容易にオープンできるように
することです。APIは、ほぼANSI C stdio関数と(多くの主な関数について同等
の意味を有しており、)類似しています。このため、Cプログラマは、
ストリームに慣れている印象を受けるはずです。
ストリームAPIは、いくつかの異なるレベルを処理します。
基本レベルでは、APIはストリーマブルなデータソースを表す
php_streamオブジェクトを定義します。
やや高いレベルでは、APIは、URLからのデータおよびメタデータの取得を
サポートするために低レベルAPIをラップしたphp_stream_wrapper
オブジェクトを定義します。
ストリームは、ファイル処理の他の形式にキャスト(変換)でき、
大きな問題もなくサードパーティ製のライブラリと組み合わせて使用する
ことができます。これにより、これらのライブラリがURLソースからデータに
直接アクセスできるようになります。
使用するシステムにfopencookie()関数がある場合、
任意のPHPストリームをANSI stdioを使う任意のライブラリに渡すことさえ
できます!