(PHP 4, PHP 5 )
strpos — Find position of first occurrence of a stringLast updated: Fri, 06 Jun 2008
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.
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.
<?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
?>
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;
}
?>
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