stream_wrapper_register()
stream_wrapper_register() — Register a URL wrapper implemented as a PHP class.
Built-in function of PHP 8.5. The manual lists it as available in PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.
What it does
Allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).
Signature
stream_wrapper_register(string $protocol, string $class, int $flags = 0): bool
Parameters
| Parameter | Type | What it takes |
|---|---|---|
| $protocol | string | The wrapper name to be registered. Valid protocol names must contain alphanumerics, dots (.), plusses (+), or hyphens (-) only. |
| $class | string | The classname which implements the protocol. |
| $flags | int | Should be set to STREAM_IS_URL if protocol is a URL protocol. Default is 0, local stream. |
Return value
Returns true on success or false on failure. stream_wrapper_register() will return false if the protocol already has a handler.
Example
A runnable snippet:
$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"); }
Output:
line1 line2 line3 string(18) "line1 line2 line3 "
See also
stream_wrapper_unregister(), stream_wrapper_restore(), stream_get_wrappers()
All PHP 8.5 built-in functions
Reference card built from the PHP manual page stream_wrapper_register() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.