Php/docs/function.stream-wrapper-register
stream_wrapper_register
(PHP 4 >= 4.3.2, PHP 5, PHP 7)
stream_wrapper_register — 注册一个用 PHP 类实现的 URL 封装协议
说明
stream_wrapper_register
( string $protocol
, string $classname
[, int $flags
= 0
] ) : bool
允许用户实现自定义的协议处理器和流,用于所有其它的文件系统函数中(例如 fopen(),fread() 等)。
参数
protocol
- 待注册的封装的名字。
classname
- 实现了
protocol
的类名。 flags
- Should be set to
STREAM_IS_URL
ifprotocol
is a URL protocol. Default is 0, local stream.
返回值
成功时返回 true
, 或者在失败时返回 false
。
当 protocol
已经有处理者时,stream_wrapper_register() 将返回false
更新日志
版本 | 说明 |
---|---|
5.2.4 | 添加 flags 参数.
|
范例
Example #1 如何注册一个 stream wrapper
<?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 "
参见
- The streamWrapper prototype class
- Example class registered as stream wrapper
- stream_wrapper_unregister() - Unregister a URL wrapper
- stream_wrapper_restore() - Restores a previously unregistered built-in wrapper
- stream_get_wrappers() - 获取已注册的流类型