• PHP: Hypertext Preprocessor

    • 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.
    • Atom
    • Show source
    • Credits
    • Stats
    • Sitemap
    • Contact
    • Advertising
    • Mirror sites

    This mirror generously provided by: Yahoo! Inc. Last updated: Mon Jun 9 01:34:45 2008 PDT