stream_wrapper_register
(PHP 4 >= 4.3.2, PHP 5)
stream_wrapper_register — PHP のクラスとして実装された URL ラッパーを登録する
説明
bool stream_wrapper_register
( string
$protocol
, string $classname
[, int $flags = 0
] )自分で作ったプロトコルハンドラとストリームを実装し、それを fopen() や fread() といったファイルシステムの関数と利用することを可能にします。
パラメータ
-
protocol -
登録したいラッパー名。
-
classname -
protocolを実装したクラス名。 -
flags -
protocolが URL プロトコルである場合はSTREAM_IS_URLを設定しなければなりません。 デフォルトは 0 で、ローカルストリームを意味します。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
stream_wrapper_register() は、
protocol というハンドラが既にある場合、
FALSE を返します。
変更履歴
| バージョン | 説明 |
|---|---|
| 5.2.4 |
flags パラメータが追加されました。
|
例
例1 ストリームラッパーの登録方法
<?php
$existed = in_array("var", stream_get_wrappers());
if ($existed) {
stream_wrapper_unregister("var");
}
stream_wrapper_register("var", "VariableStream");
$myvar = "";
$fp = fopen("var://myvar", "r+");
fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");
rewind($fp);
while (!feof($fp)) {
echo fgets($fp);
}
fclose($fp);
var_dump($myvar);
if ($existed) {
stream_wrapper_restore("var");
}
?>
上の例の出力は以下となります。
line1 line2 line3 string(18) "line1 line2 line3 "
参考
- streamWrapper プロトタイプクラス
- ストリームラッパーとして登録するクラスの例
- stream_wrapper_unregister() - URL ラッパーの登録を解除する
- stream_wrapper_restore() - 事前に登録を解除された組み込みラッパーを復元する
- stream_get_wrappers() - 登録されているストリームのラッパーのリストを取得する