stream_wrapper_register

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

stream_wrapper_registerPHP のクラスとして実装された URL ラッパーを登録する

説明

stream_wrapper_register ( string $protocol , string $classname [, int $flags = 0 ] ) : bool

自分で作ったプロトコルハンドラとストリームを実装し、それを 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
"

参考