array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.stream-wrapper-register.php', 1 => 'stream_wrapper_register', ), 'up' => array ( 0 => 'ref.stream.php', 1 => 'Функции для работы с потоками', ), 'prev' => array ( 0 => 'function.stream-supports-lock.php', 1 => 'stream_supports_lock', ), 'next' => array ( 0 => 'function.stream-wrapper-restore.php', 1 => 'stream_wrapper_restore', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/stream/functions/stream-wrapper-register.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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 "