ストリームは、PHP が提供する強力なツールであり、うまく活用すると、PHP の生産性が大幅に向上します。 Streams のパワーを活用することで、アプリケーションを次のレベルに引き上げることができます。
以下はPHPマニュアルのStreamsの説明です:
ストリームは、PHP バージョン 4.3.0 で導入されました。ファイル、ネットワーク、データ圧縮、その他の種類のファイルの操作方法を統一するために使用され、これらの種類のファイル操作に共通の関数インターフェイスのセットを提供します。つまり、ストリームはストリーミング動作を行うリソース オブジェクトです。言い換えれば、ストリームに対する読み取りと書き込みを線形に行うことができます。また、 fseek() を使用すると、ストリーム内の任意の位置にジャンプできます。
各 Streams オブジェクトにはラッパー クラスがあり、特別なプロトコルやエンコーディングを処理するための関連コードを追加できます。一般的に使用されるパッケージ クラスの一部は PHP に組み込まれており、カスタム パッケージ クラスを作成して登録することもできます。既存のコンテキストとフィルターを使用してラッパー クラスを変更および拡張することもできます。
ストリームの基本
ストリームは
PHP のデフォルトのパッケージング クラスは file:// です。これは、ファイル システムにアクセスするときに実際にはストリームを使用することを意味します。ファイルの内容は、readfile('/path/to/somefile.txt') または readfile('file:///path/to/somefile.txt') の 2 つの方法で読み取ることができます。これらのメソッドは同等です。 。 readfile('http://google.com/') を使用すると、PHP は動作する HTTP ストリーム ラッパー クラスを選択します。
上で述べたように、PHP は多くの組み込みラッパー クラス、プロトコル、フィルターを提供します。 以下で説明する方法に従って、このマシンでサポートされているパッケージング クラスをクエリできます:
print_r(stream_get_transports());
print_r(stream_get_wrappers());
print_r(stream_get_filters());
私のマシンでの出力は次のとおりです:
配列
(
[0] => tcp
[1] => udp
[2] => unix
[3] => ウッグ
[4] => ssl
[5] => sslv3
[6] => sslv2
[7] => tls
)
配列
(
[0] => https
[1] => ftps
[2] => compress.zlib
[3] => compress.bzip2
[4] => php
[5] => ファイル
[6] => グロブ
[7] => データ
[8] => http
[9] => ftp
[10] => zip
[11] => ファー
)
配列
(
[0] => zlib.*
[1] => bzip2.*
[2] => Convert.iconv.*
[3] => string.rot13
[4] => string.toupper
[5] => string.to lower
[6] => string.strip_tags
[7] => 変換.*
[8] => 消費されました
[9] => デチャンク
[10] => mcrypt.*
[11] => mdecrypt.*
)
機能がたくさん付いていて、良さそうですよね