= 4.3.2, PHP 5, PHP 7, PHP 8)stream_wrapper_register — 注冊一個用 PHP 類實現(xiàn)的 URL 封裝協(xié)議說明stream_wrapper_register(string $protoco">
(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)
stream_wrapper_register — 注冊一個用 PHP 類實現(xiàn)的 URL 封裝協(xié)議
$protocol
, string $class
, int $flags
= 0): bool允許用戶實現(xiàn)自定義的協(xié)議處理器和流,用于所有其它的文件系統(tǒng)函數(shù)中(例如 fopen(),fread() 等)。
protocol
待注冊的封裝的名字。有效的協(xié)議名字必須只包含字母數(shù)字、點(.)、加號(+)、連字符(-)。
class
實現(xiàn)了 protocol
的類名。
flags
如果 protocol
是一個 URL 協(xié)議,應該設(shè)置為
STREAM_IS_URL
。默認為 0,本地流。
成功時返回 true
, 或者在失敗時返回 false
。
當 protocol
已經(jīng)有處理者時,stream_wrapper_register() 將返回false
示例 #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 "