-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathsubstr-compare.xml
173 lines (166 loc) · 4.96 KB
/
substr-compare.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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 9b68bf2b63200534e022bc65e800cae6c75abf26 Maintainer: daijie Status: ready -->
<!-- CREDITS: mowangjuanzi, Luffy -->
<refentry xml:id="function.substr-compare" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>substr_compare</refname>
<refpurpose>二进制安全比较字符串(从偏移位置比较指定长度)</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>substr_compare</methodname>
<methodparam><type>string</type><parameter>haystack</parameter></methodparam>
<methodparam><type>string</type><parameter>needle</parameter></methodparam>
<methodparam><type>int</type><parameter>offset</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>case_insensitive</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
<function>substr_compare</function> 从偏移位置
<parameter>offset</parameter> 开始比较
<parameter>haystack</parameter> 与
<parameter>needle</parameter>,比较长度为
<parameter>length</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>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
比较开始的位置。如果为负数,则从字符串结尾处开始算起。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
比较的长度。默认值为 <parameter>needle</parameter> 的长度与
<parameter>haystack</parameter> 的长度减去位置偏移量
<parameter>offset</parameter> 后二者中的较大者。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>case_insensitive</parameter></term>
<listitem>
<para>
如果 <parameter>case_insensitive</parameter> 为 &true;,比较将不区分大小写。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
&strings.comparison.return;
<para>
如果 <parameter>offset</parameter> 等于(在 PHP 7.2.18, 7.3.5 之前)或大于
<parameter>haystack</parameter> 的长度,或设置
<parameter>length</parameter> 小于或等于 0,<function>substr_compare</function>
将打印出警告信息并且返回 &false;。
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&standard.changelog.binary-safe-string-comparison;
<row>
<entry>8.0.0</entry>
<entry>
<parameter>length</parameter> 现在允许为 null。
</entry>
</row>
<row>
<entry>7.2.18, 7.3.5</entry>
<entry>
<parameter>offset</parameter> 现在可能等于 <parameter>haystack</parameter>。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>substr_compare</function> 示例</title>
<programlisting role="php">
<![CDATA[
<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>strncmp</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
-->