-
Notifications
You must be signed in to change notification settings - Fork 109
Expand file tree
/
Copy pathstream-wrapper-register.xml
More file actions
executable file
·154 lines (142 loc) · 3.97 KB
/
stream-wrapper-register.xml
File metadata and controls
executable file
·154 lines (142 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b6c8a19a38e06d858efe505587fa90fead553a74 Maintainer: jhdxr Status: ready -->
<!-- CREDITS: her-cat -->
<refentry xml:id="function.stream-wrapper-register" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>stream_wrapper_register</refname>
<refpurpose>注册一个用 PHP 类实现的 URL 封装协议</refpurpose>
</refnamediv>
<refsect1 role="description"><!-- {{{ -->
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>stream_wrapper_register</methodname>
<methodparam><type>string</type><parameter>protocol</parameter></methodparam>
<methodparam><type>string</type><parameter>class</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
允许用户实现自定义的协议处理器和流,用于所有其它的文件系统函数中(例如
<function>fopen</function>,<function>fread</function> 等)。
</para>
</refsect1><!-- }}} -->
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>protocol</parameter></term>
<listitem>
<para>
待注册的封装的名字。有效的协议名字必须只包含字母数字、点(.)、加号(+)、连字符(-)。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
实现了 <parameter>protocol</parameter> 的类名。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
如果 <parameter>protocol</parameter>
是一个 URL 协议,应该设置为
<constant>STREAM_IS_URL</constant>。默认为 0,本地流。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
<para>
当 <parameter>protocol</parameter> 已经有处理者时,<function>stream_wrapper_register</function> 将返回&false;
</para>
</refsect1>
<refsect1 role="examples"><!-- {{{ -->
&reftitle.examples;
<para>
<example>
<title>如何注册一个 stream wrapper</title>
<programlisting role="php">
<![CDATA[
<?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");
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
line1
line2
line3
string(18) "line1
line2
line3
"
]]>
</screen>
</example>
</para>
</refsect1><!-- }}} -->
<refsect1 role="seealso"><!-- {{{ -->
&reftitle.seealso;
<para>
<simplelist>
<member><xref linkend="class.streamwrapper"/>原型类</member>
<member><xref linkend="stream.streamwrapper.example-1"/></member>
<member><function>stream_wrapper_unregister</function></member>
<member><function>stream_wrapper_restore</function></member>
<member><function>stream_get_wrappers</function></member>
</simplelist>
</para>
</refsect1><!-- }}} -->
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->