(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
stream_wrapper_register — Регистрирует URL-обёртку, которую реализовали как PHP-класс
Функция разрешает реализовать пользовательские обработчики протоколов и потоков для работы с другими функциями, которые работают с файловой системом (например, fopen(), fread() и т. д.).
protocol
Название регистрируемой обёртки. Допустимые имена протоколов должны содержать только буквы, цифры, точки (.), плюсы (+) или дефисы (-).
class
Название класса, который реализует протокол из параметра protocol
.
flags
Для параметра требуется установить значение STREAM_IS_URL
, если
параметр protocol
— URL-протокол. Значение по умолчанию равняется 0 —
локальный поток.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Функция stream_wrapper_register() будет возвращать false
, если
у протокола protocol
уже есть обработчик.
Пример #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 "