-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathstrrpos.xml
215 lines (199 loc) · 5.58 KB
/
strrpos.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2eb2cdbe58d2f35cb88ad06fa090f3c0ccd9f860 Maintainer: HonestQiao Status: ready -->
<!-- CREDITS: mowangjuanzi, Luffy -->
<refentry xml:id="function.strrpos" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>strrpos</refname>
<refpurpose>计算指定字符串在目标字符串中最后一次出现的位置</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>int</type><type>false</type></type><methodname>strrpos</methodname>
<methodparam><type>string</type><parameter>haystack</parameter></methodparam>
<methodparam><type>string</type><parameter>needle</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>offset</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
返回 <parameter>haystack</parameter> 字符串中 <parameter>needle</parameter> 最后一次出现的数字位置。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>haystack</parameter></term>
<listitem>
<para>
在此字符串中进行查找。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>needle</parameter></term>
<listitem>
<para>
要搜索的字符串。
</para>
&strings.parameter.needle.non-string;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
如果为 0 或正数,则从左到右搜索,跳过 <parameter>haystack</parameter> 的开头
<parameter>offset</parameter> 个字节。
</para>
<para>
如果为负数,搜索从右侧 <parameter>offset</parameter> 个字节开始,而不是从开头 <parameter>haystack</parameter>
个字节开始。搜索从右往左进行,从所选字节中搜索第一个出现的 <parameter>needle</parameter>。
<note>
<para>
这实际是在最后 <parameter>offset</parameter> 个字节之前寻找最后出现的
<parameter>needle</parameter> 的位置。
</para>
</note>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回 needle 在 <parameter>haystack</parameter> 字符串中存在的位置(与搜索顺序或者 offset 无关)。
<note>
<simpara>
字符串位置从 0 开始,而不是 1。
</simpara>
</note>
</para>
<para>
如果未找到 needle,则返回 &false;。
</para>
&return.falseproblem;
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&strings.changelog.needle-empty;
<row>
<entry>8.0.0</entry>
<entry>
不再支持将 &integer; 传递给 <parameter>needle</parameter>。
</entry>
</row>
<row>
<entry>7.3.0</entry>
<entry>
弃用将 &integer; 传递给 <parameter>needle</parameter>。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>检查字串是否存在</title>
<para>
很容易将“在位置 0 处找到”和“未发现字符串”这两种情况搞错。这是检测区别的办法:
</para>
<programlisting role="php">
<![CDATA[
<?php
$pos = strrpos($mystring, "b");
if ($pos === false) { // 注意: 三个等号
// 未发现...
}
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>使用偏移位置进行查找</title>
<programlisting role="php">
<![CDATA[
<?php
$foo = "0123456789a123456789b123456789c";
// 从第 0 个字节(从头)寻找“0”
var_dump(strrpos($foo, '0', 0));
// 从第 1 个字节(字节“0”之后)寻找“0”
var_dump(strrpos($foo, '0', 1));
// 从第 21 个字节(20 个字节之后)寻找“7”
var_dump(strrpos($foo, '7', 20));
// 从第 29 个字节(28 个字节之后)寻找“7”
var_dump(strrpos($foo, '7', 28));
// 从倒数第 5 个字节起从右向左寻找“7”
var_dump(strrpos($foo, '7', -5));
// 从倒数第 2 个字节起从右向左寻找“c”
var_dump(strrpos($foo, 'c', -2));
// 从倒数第 2 个字节起从右向左寻找“9c”
var_dump(strrpos($foo, '9c', -2));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>strpos</function></member>
<member><function>stripos</function></member>
<member><function>strripos</function></member>
<member><function>strrchr</function></member>
<member><function>substr</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
-->