stream_wrapper_register

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

stream_wrapper_registerРегистрирует обёртку URL, реализованную в виде PHP-класса

Описание

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

Позволяет вам реализовать ваши собственные обработчики протоколов и потоков для использования со всеми другими функциями файловой системы (такими, как fopen(), fread() и т. д.).

Список параметров

protocol

Название регистрируемой обёртки.

classname

Название класса, который реализует протокол protocol.

flags

Должно быть установлено в STREAM_IS_URL, если параметр protocol является протоколом URL. По умолчанию 0, локальный поток.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

stream_wrapper_register() будет возвращать FALSE, если протокол protocol уже имеет обработчик.

Список изменений

Версия Описание
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
"

Смотрите также

Коментарии

If you plan to use your wrapper in a require_once you need to define stream_stat().  If you plan to allow any other tests like is_file()/is_dir(), you have to define url_stat().

stream_stat() must define the size of the file, or it will never be included.  url_stat() must define mode, or is_file()/is_dir()/is_executable(), and any of those functions affected by clearstatcache() simply won't work.

It's not documented, but directories must be a mode like 040777 (octal), and files a mode like 0100666.  If you wish the file to be executable, use 7s instead of 6s.  The last 3 digits are exactly the same thing as what you pass to chmod.  040000 defines a directory, and 0100000 defines a file.  It would be really helpful to add this to the official manual!
2005-04-12 22:45:07
http://php5.kiev.ua/manual/ru/function.stream-wrapper-register.html
It is worth noting that if your wrapper supports stream_flush() then when you flcose() your stream this function will be called prior to closing the stream.
2005-06-20 22:37:09
http://php5.kiev.ua/manual/ru/function.stream-wrapper-register.html

    Поддержать сайт на родительском проекте КГБ