# strpos - PHP: Hypertext Preprocessor

- # PHP: Hypertext Preprocessor

  Search for in the
- - Downloads
  - Documentation
  - Faq
  - Getting Help
  - Mailing Lists
  - Reporting Bugs
  - Php.net Sites
  - Links
  - Conferences
  - My Php.net

- - ### PHP Manual

    - PHP Manual
    - Function Reference
    - Text Processing
    - Strings
    - String Functions
    - Functions
      - addcslashes
      - addslashes
      - bin2hex
      - chop
      - chr
      - chunk_ split
      - convert_ cyr_ string
      - convert_ uudecode
      - convert_ uuencode
      - count_ chars
      - crc32
      - crypt
      - echo
  - strbrk strbrk

    View this page in

    ### strpos

    (PHP 4, PHP 5 )

    strpos — Find position of first occurrence of a string

    Last updated: Fri, 06 Jun 2008

    #### Description

    int strpos ( string `$haystack`, mixed `$needle` [, int `$offset` ] )

    Returns the numeric position of the first occurrence of needle in the haystack string. Unlike the strrpos() before PHP 5, this function can take a full string as the needle parameter and the entire string will be used.

    #### Parameters

    `haystack`
      The string to search in
    `needle`
      If `needle` is not a string, it is converted to an integer and applied as the ordinal value of a character.
    `offset`
      The optional offset parameter allows you to specify which character in haystack to start searching. The position returned is still relative to the beginning of haystack .

    #### Return Values

    Returns the position as an integer. If `needle` is not found, strpos() will return boolean `FALSE`.

    Warning

    This function may return Boolean `FALSE`, but may also return a non-Boolean value which evaluates to `FALSE`, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.

    #### Examples

    #### Example #1 strpos() examples

    `<?php
    $mystring = 'abc';
    $findme = 'a';
    $pos = strpos($mystring, $findme);
    // Note our use of ===. Simply == would not work as expected
    // because the position of 'a' was the 0th (first) character.
    if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
    } else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
    }
    // We can search for the character, ignoring anything before the offset
    $newstring = 'abcdef abcdef';
    $pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
    ?>`

    #### Notes

    Note: This function is binary-safe.

    #### See also:

    - strrpos()
    - stripos()
    - strripos()
    - strrchr()
    - substr()
    - stristr()
    - strstr()

    Add Note

    #### User Contributed Notes

    - pawhox
      26-May-2008 06:19
      `Hello! I was founding a function, which finds any occurence of a string (no: first occurence). I wasn't, so I maked this function! It may be very useful.
      <?php
      int strnpos(string $haystack, mixed $needle, int $occurence);
      ?>
      Example:
      <?php
      strnpos("I like the bananas. You like coke. We like chocolate.", "like", 2); // 24
      ?>
      Here's code of this function:
      <?php
      function strnpos($base, $str, $n)
      {
      if ($n <= 0 || intval($n) != $n || substr_count($base, $str) < $n) return FALSE;
      $str = strval($str);
      $len = 0;
      for ($i=0 ; $i<$n-1 ; ++$i)
      {
      if ( strpos($base, $str) === FALSE ) return FALSE;
      $len += strlen( substr($base, 0, strpos($base, $str) + strlen($str)) );
      $base = substr($base, strpos($base, $str) + strlen($str) );
      }
      return strpos($base, $str) + $len;
      }
      ?>`
    - ilaymyhat-rem0ve at yahoo dot com
      01-Apr-2008 05:17
      `This might be useful.
      class String{
      //Look for a $needle in $haystack in any position
      public static function contains(&$haystack, &$needle, &$offset)
      {
      $result = strpos($haystack, $needle, $offset);
      return $result !== FALSE;
      }
      //intuitive implementation .. if not found returns -1.
      public static function strpos(&$haystack, &$needle, &$offset)
      {
      $result = strpos($haystack, $needle, $offset);
      if ($result === FALSE )
      {
      return -1;
      }
      return $result;
      }
      }//String`
    strbrk strbrk

    View this page in

- Copyright © 2001-2008 The PHP Group
  All rights reserved.