-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathpathinfo.xml
244 lines (234 loc) · 6.67 KB
/
pathinfo.xml
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: d0cc084a925f112c156d0dbac12718b2bd8d4889 Maintainer: HonestQiao Status: ready -->
<!-- CREDITS: Luffy, mowangjuanzi -->
<refentry xml:id="function.pathinfo" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>pathinfo</refname>
<refpurpose>返回文件路径的信息</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>array</type><type>string</type></type><methodname>pathinfo</methodname>
<methodparam><type>string</type><parameter>path</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>PATHINFO_ALL</constant></initializer></methodparam>
</methodsynopsis>
<para>
<function>pathinfo</function> 返回一个关联数组包含有 <parameter>path</parameter>
的信息。返回关联数组还是字符串取决于 <parameter>flags</parameter>。
</para>
<note>
<para>
有关取得当前路径信息的说明,请阅读 <link linkend="language.variables.predefined">预定义变量</link> 一节。
</para>
</note>
<note>
<para>
<function>pathinfo</function> 纯粹基于输入字符串操作,
它不会受实际文件系统和类似 "<literal>..</literal>" 的路径格式影响。
</para>
</note>
<note>
<para>
反斜线字符 <literal>\</literal> 仅在 Windows 系统上会解释为目录分隔符。在其他系统上,它将视为普通字符。
</para>
</note>
<caution>
<para>
<function>pathinfo</function> 是本地化的,所以为了让它能正确地解析一个包含多字节编码的路径,
必须使用 <function>setlocale</function> 函数来设置地区信息。
</para>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<para>
要解析的路径。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
如果指定了,将会返回指定元素;它们包括:
<constant>PATHINFO_DIRNAME</constant>、
<constant>PATHINFO_BASENAME</constant>、
<constant>PATHINFO_EXTENSION</constant>、
<constant>PATHINFO_FILENAME</constant>。
</para>
<para>如果没有指定 <parameter>flags</parameter> 默认是返回全部的单元。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
如果没有传入 <parameter>options</parameter> ,将会返回包括以下单元的数组 <type>array</type>:<literal>dirname</literal>,<literal>basename</literal>
和 <literal>extension</literal>(如果有),以及<literal>filename</literal>。
</para>
<note>
<para>
如果 <parameter>path</parameter> 有一个以上的扩展名,
<constant>PATHINFO_EXTENSION</constant> 只返回最后一个,而
<constant>PATHINFO_FILENAME</constant> 仅剥离最后一个。
(参考第一个示例)。
</para>
</note>
<note>
<para>
如果 <parameter>path</parameter> 没有扩展名,返回数据中就不会有
<literal>extension</literal> 元素。(参考第二个示例)
</para>
</note>
<note>
<para>
如果 <parameter>path</parameter> 中的 <literal>basename</literal> 以点开始,
那后面的字符串将被解释为 <literal>extension</literal> ,
并且 <literal>filename</literal> 为空。(参考第三个示例)
</para>
</note>
<para>
如果 <parameter>flags</parameter> 存在的,
则返回一个包含请求元素的 <type>string</type>。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>pathinfo</function> 例子</title>
<programlisting role="php">
<![CDATA[
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
/www/htdocs/inc
lib.inc.php
php
lib.inc
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>pathinfo</function> 对比空扩展名和无扩展名之间区别的示例</title>
<programlisting role="php">
<![CDATA[
<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
string(0) ""
Notice: Undefined index: extension in test.php on line 6
NULL
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>pathinfo</function> 形如 .file 的示例</title>
<programlisting role="php">
<![CDATA[
<?php
print_r(pathinfo('/some/path/.test'));
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Array
(
[dirname] => /some/path
[basename] => .test
[extension] => test
[filename] =>
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>pathinfo</function> 示例和解除数组引用</title>
<para>
<parameter>flags</parameter> 参数不是位掩码。只能提供单个值。要是只选择某些格式化值,请使用数组解构,如下所示:
</para>
<programlisting role="php">
<![CDATA[
<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
var_dump($basename, $dirname);
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
string(11) "lib.inc.php"
string(15) "/www/htdocs/inc"
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>dirname</function></member>
<member><function>basename</function></member>
<member><function>parse_url</function></member>
<member><function>realpath</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
-->