xref: /web-php/manual/en/function.strpos.php (revision c3f96532)
1<?php
2include_once __DIR__ . '/../../include/shared-manual.inc';
3$TOC = array();
4$PARENTS = array();
5include_once __DIR__ ."/toc/ref.strings.inc";
6$setup = array (
7  'home' =>
8  array (
9    0 => 'index.php',
10    1 => 'PHP Manual',
11  ),
12  'head' =>
13  array (
14    0 => 'UTF-8',
15    1 => 'en',
16  ),
17  'this' =>
18  array (
19    0 => 'function.strpos.php',
20    1 => 'strpos',
21  ),
22  'up' =>
23  array (
24    0 => 'ref.strings.php',
25    1 => 'String Functions',
26  ),
27  'prev' =>
28  array (
29    0 => 'function.strpbrk.php',
30    1 => 'strpbrk',
31  ),
32  'next' =>
33  array (
34    0 => 'function.strrchr.php',
35    1 => 'strrchr',
36  ),
37  'alternatives' =>
38  array (
39  ),
40);
41$setup["toc"] = $TOC;
42$setup["parents"] = $PARENTS;
43manual_setup($setup);
44
45?>
46<div id="function.strpos" class="refentry">
47 <div class="refnamediv">
48  <h1 class="refname">strpos</h1>
49  <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">strpos</span> &mdash; <span class="dc-title">Find the position of the first occurrence of a substring in a string</span></p>
50
51 </div>
52
53 <div class="refsect1 description" id="refsect1-function.strpos-description">
54  <h3 class="title">Description</h3>
55  <div class="methodsynopsis dc-description">
56   <span class="type"><a href="language.pseudo-types.php#language.types.mixed" class="type mixed">mixed</a></span> <span class="methodname"><strong>strpos</strong></span>
57    ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$haystack</code></span>
58   , <span class="methodparam"><span class="type"><a href="language.pseudo-types.php#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$needle</code></span>
59   [, <span class="methodparam"><span class="type">int</span> <code class="parameter">$offset</code><span class="initializer"> = 0</span></span>
60  ] )</div>
61
62  <p class="para rdfs-comment">
63   Find the numeric position of the first occurrence of
64   <em><code class="parameter">needle</code></em> in the <em><code class="parameter">haystack</code></em> string.
65  </p>
66 </div>
67
68
69 <div class="refsect1 parameters" id="refsect1-function.strpos-parameters">
70  <h3 class="title">Parameters</h3>
71  <p class="para">
72   <dl>
73
74    <dt>
75
76     <span class="term"><em><code class="parameter">haystack</code></em></span>
77     <dd>
78
79      <p class="para">
80       The string to search in.
81      </p>
82     </dd>
83
84    </dt>
85
86    <dt>
87
88     <span class="term"><em><code class="parameter">needle</code></em></span>
89     <dd>
90
91      <p class="para">
92       If <em><code class="parameter">needle</code></em> is not a string, it is converted
93       to an integer and applied as the ordinal value of a character.
94      </p>
95     </dd>
96
97    </dt>
98
99    <dt>
100
101     <span class="term"><em><code class="parameter">offset</code></em></span>
102     <dd>
103
104      <p class="para">
105       If specified, search will start this number of characters counted from
106       the beginning of the string. Unlike  <span class="function"><a href="function.strrpos.php" class="function">strrpos()</a></span> and
107        <span class="function"><a href="function.strripos.php" class="function">strripos()</a></span>, the offset cannot be negative.
108      </p>
109     </dd>
110
111    </dt>
112
113   </dl>
114
115  </p>
116 </div>
117
118
119 <div class="refsect1 returnvalues" id="refsect1-function.strpos-returnvalues">
120  <h3 class="title">Return Values</h3>
121  <p class="para">
122   Returns the position of where the needle exists relative to the beginning of
123   the <em><code class="parameter">haystack</code></em> string (independent of offset).
124   Also note that string positions start at 0, and not 1.
125  </p>
126  <p class="para">
127   Returns <strong><code>FALSE</code></strong> if the needle was not found.
128  </p>
129  <div class="warning"><strong class="warning">Warning</strong><p class="simpara">This function may
130return Boolean <strong><code>FALSE</code></strong>, but may also return a non-Boolean value which
131evaluates to <strong><code>FALSE</code></strong>. Please read the section on <a href="language.types.boolean.php" class="link">Booleans</a> for more
132information. Use <a href="language.operators.comparison.php" class="link">the ===
133operator</a> for testing the return value of this
134function.</p></div>
135 </div>
136
137
138 <div class="refsect1 examples" id="refsect1-function.strpos-examples">
139  <h3 class="title">Examples</h3>
140  <p class="para">
141   <div class="example" id="example-4886">
142    <p><strong>Example #1 Using <em>===</em></strong></p>
143    <div class="example-contents">
144<div class="phpcode"><code><span style="color: #000000">
145<span style="color: #0000BB">&lt;?php<br>$mystring&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'abc'</span><span style="color: #007700">;<br></span><span style="color: #0000BB">$findme&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'a'</span><span style="color: #007700">;<br></span><span style="color: #0000BB">$pos&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$mystring</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$findme</span><span style="color: #007700">);<br><br></span><span style="color: #FF8000">//&nbsp;Note&nbsp;our&nbsp;use&nbsp;of&nbsp;===.&nbsp;&nbsp;Simply&nbsp;==&nbsp;would&nbsp;not&nbsp;work&nbsp;as&nbsp;expected<br>//&nbsp;because&nbsp;the&nbsp;position&nbsp;of&nbsp;'a'&nbsp;was&nbsp;the&nbsp;0th&nbsp;(first)&nbsp;character.<br></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$pos&nbsp;</span><span style="color: #007700">===&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"The&nbsp;string&nbsp;'</span><span style="color: #0000BB">$findme</span><span style="color: #DD0000">'&nbsp;was&nbsp;not&nbsp;found&nbsp;in&nbsp;the&nbsp;string&nbsp;'</span><span style="color: #0000BB">$mystring</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br>}&nbsp;else&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"The&nbsp;string&nbsp;'</span><span style="color: #0000BB">$findme</span><span style="color: #DD0000">'&nbsp;was&nbsp;found&nbsp;in&nbsp;the&nbsp;string&nbsp;'</span><span style="color: #0000BB">$mystring</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"&nbsp;and&nbsp;exists&nbsp;at&nbsp;position&nbsp;</span><span style="color: #0000BB">$pos</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br>}<br></span><span style="color: #0000BB">?&gt;</span>
146</span>
147</code></div>
148    </div>
149
150   </div>
151
152   <div class="example" id="example-4887">
153    <p><strong>Example #2 Using !==</strong></p>
154    <div class="example-contents">
155<div class="phpcode"><code><span style="color: #000000">
156<span style="color: #0000BB">&lt;?php<br>$mystring&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'abc'</span><span style="color: #007700">;<br></span><span style="color: #0000BB">$findme&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'a'</span><span style="color: #007700">;<br></span><span style="color: #0000BB">$pos&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$mystring</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$findme</span><span style="color: #007700">);<br><br></span><span style="color: #FF8000">//&nbsp;The&nbsp;!==&nbsp;operator&nbsp;can&nbsp;also&nbsp;be&nbsp;used.&nbsp;&nbsp;Using&nbsp;!=&nbsp;would&nbsp;not&nbsp;work&nbsp;as&nbsp;expected<br>//&nbsp;because&nbsp;the&nbsp;position&nbsp;of&nbsp;'a'&nbsp;is&nbsp;0.&nbsp;The&nbsp;statement&nbsp;(0&nbsp;!=&nbsp;false)&nbsp;evaluates&nbsp;<br>//&nbsp;to&nbsp;false.<br></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">$pos&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"The&nbsp;string&nbsp;'</span><span style="color: #0000BB">$findme</span><span style="color: #DD0000">'&nbsp;was&nbsp;found&nbsp;in&nbsp;the&nbsp;string&nbsp;'</span><span style="color: #0000BB">$mystring</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"&nbsp;and&nbsp;exists&nbsp;at&nbsp;position&nbsp;</span><span style="color: #0000BB">$pos</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br>}&nbsp;else&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"The&nbsp;string&nbsp;'</span><span style="color: #0000BB">$findme</span><span style="color: #DD0000">'&nbsp;was&nbsp;not&nbsp;found&nbsp;in&nbsp;the&nbsp;string&nbsp;'</span><span style="color: #0000BB">$mystring</span><span style="color: #DD0000">'"</span><span style="color: #007700">;<br>}<br></span><span style="color: #0000BB">?&gt;</span>
157</span>
158</code></div>
159    </div>
160
161   </div>
162
163   <div class="example" id="example-4888">
164    <p><strong>Example #3 Using an offset</strong></p>
165    <div class="example-contents">
166<div class="phpcode"><code><span style="color: #000000">
167<span style="color: #0000BB">&lt;?php<br></span><span style="color: #FF8000">//&nbsp;We&nbsp;can&nbsp;search&nbsp;for&nbsp;the&nbsp;character,&nbsp;ignoring&nbsp;anything&nbsp;before&nbsp;the&nbsp;offset<br></span><span style="color: #0000BB">$newstring&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'abcdef&nbsp;abcdef'</span><span style="color: #007700">;<br></span><span style="color: #0000BB">$pos&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strpos</span><span style="color: #007700">(</span><span style="color: #0000BB">$newstring</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'a'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;$pos&nbsp;=&nbsp;7,&nbsp;not&nbsp;0<br></span><span style="color: #0000BB">?&gt;</span>
168</span>
169</code></div>
170    </div>
171
172   </div>
173  </p>
174 </div>
175
176
177 <div class="refsect1 notes" id="refsect1-function.strpos-notes">
178  <h3 class="title">Notes</h3>
179  <blockquote class="note"><p><strong class="note">Note</strong>: <span class="simpara">This function is
180binary-safe.</span></p></blockquote>
181 </div>
182
183
184 <div class="refsect1 seealso" id="refsect1-function.strpos-seealso">
185  <h3 class="title">See Also</h3>
186  <p class="para">
187   <ul class="simplelist">
188    <li class="member"> <span class="function"><a href="function.stripos.php" class="function" rel="rdfs-seeAlso">stripos()</a> - Find the position of the first occurrence of a case-insensitive substring in a string</span></li>
189    <li class="member"> <span class="function"><a href="function.strrpos.php" class="function" rel="rdfs-seeAlso">strrpos()</a> - Find the position of the last occurrence of a substring in a string</span></li>
190    <li class="member"> <span class="function"><a href="function.strripos.php" class="function" rel="rdfs-seeAlso">strripos()</a> - Find the position of the last occurrence of a case-insensitive substring in a string</span></li>
191    <li class="member"> <span class="function"><a href="function.strstr.php" class="function" rel="rdfs-seeAlso">strstr()</a> - Find the first occurrence of a string</span></li>
192    <li class="member"> <span class="function"><a href="function.strpbrk.php" class="function" rel="rdfs-seeAlso">strpbrk()</a> - Search a string for any of a set of characters</span></li>
193    <li class="member"> <span class="function"><a href="function.substr.php" class="function" rel="rdfs-seeAlso">substr()</a> - Return part of a string</span></li>
194    <li class="member"> <span class="function"><a href="function.preg-match.php" class="function" rel="rdfs-seeAlso">preg_match()</a> - Perform a regular expression match</span></li>
195   </ul>
196  </p>
197 </div>
198
199
200</div><?php manual_footer(); ?>
201