<HTML ><HEAD ><TITLE >strpos</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.44"><LINK REL="HOME" TITLE="PHP Manual" HREF="manual.html"><LINK REL="UP" TITLE="String functions" HREF="ref.strings.html"><LINK REL="PREVIOUS" TITLE="strlen" HREF="function.strlen.html"><LINK REL="NEXT" TITLE="strrchr" HREF="function.strrchr.html"></HEAD ><BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP Manual</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.strlen.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.strrchr.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.strpos" >strpos</A ></H1 ><DIV CLASS="refnamediv" ><A NAME="AEN26445" ></A >strpos -- Find position of first occurrence of a string. </DIV ><DIV CLASS="refsect1" ><A NAME="AEN26448" ></A ><H2 >Description</H2 ><DIV CLASS="funcsynopsis" ><P ></P ><CODE CLASS="FUNCDEF" >int strpos</CODE >(string haystack, string needle, int [<SPAN CLASS="optional" >offset</SPAN >] );<P ></P ></DIV ><P > Returns the numeric position of the first occurrence of <TT CLASS="parameter" ><I >needle</I ></TT > in the <TT CLASS="parameter" ><I >haystack</I ></TT > string. Unlike the <A HREF="function.strrpos.html" ><B CLASS="function" >strrpos()</B ></A >, this function can take a full string as the <TT CLASS="parameter" ><I >needle</I ></TT > parameter and the entire string will be used. </P ><P > If <TT CLASS="parameter" ><I >needle</I ></TT > is not found, returns false. <DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Note: </B > It is easy to mistake the return values for "character found at position 0" and "character not found". Here's how to detect the difference: <DIV CLASS="informalexample" ><P ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="programlisting" > 1 2 // in PHP 4.0b3 and newer: 3 $pos = strpos ("b", $mystring); 4 if ($pos === false) { // note: three equal signs 5 // not found... 6 } 7 8 // in versions older than 4.0b3: 9 $pos = strpos ("b", $mystring); 10 if (is_string ($pos) && !$pos) { 11 // not found... 12 } 13 </PRE ></TD ></TR ></TABLE ><P ></P ></DIV > </P ></BLOCKQUOTE ></DIV > </P ><P > If <TT CLASS="parameter" ><I >needle</I ></TT > is not a string, it is converted to an integer and applied as the ordinal value of a character. </P ><P > The optional <TT CLASS="parameter" ><I >offset</I ></TT > parameter allows you to specify which character in <TT CLASS="parameter" ><I >haystack</I ></TT > to start searching. The position returned is still relative to the the beginning of <TT CLASS="parameter" ><I >haystack</I ></TT >. </P ><P > See also <A HREF="function.strrpos.html" ><B CLASS="function" >strrpos()</B ></A >, <A HREF="function.strrchr.html" ><B CLASS="function" >strrchr()</B ></A >, <A HREF="function.substr.html" ><B CLASS="function" >substr()</B ></A >, <A HREF="function.stristr.html" ><B CLASS="function" >stristr()</B ></A >, and <A HREF="function.strstr.html" ><B CLASS="function" >strstr()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.strlen.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="manual.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.strrchr.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >strlen</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.strings.html" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >strrchr</TD ></TR ></TABLE ></DIV ></BODY ></HTML >