PHP: mb_strpos - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mb_strrchr mb_strlen

Last updated: Fri, 26 Jan 2007

view this page in

# mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos -- Find position of first occurrence of string in a string

## Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]] )

mb_strpos() returns the numeric position of the first occurrence of `needle` in the `haystack` string. If `needle` is not found, it returns `FALSE`.

mb_strpos() performs multi-byte safe strpos() operation based on number of characters. `needle` position is counted from the beginning of the `haystack`. First character's position is 0. Second character position is 1, and so on.

If `encoding` is omitted, internal character encoding is used.

`offset` is search offset. If it is not specified, 0 is used.

`encoding` is character encoding name. If it is omitted, internal character encoding is used.

See also mb_strrpos(), mb_internal_encoding(), strpos()

add a note User Contributed Notes
mb_strpos
stestagg at talk21 dot com
05-Aug-2006 05:12
`sorry, my previous post had an error. replace the 1000 with strlen($haystack) to handle strings longer than 1000 chars.
btw. This is an issue with the mbstring functions. you can't specify the $encoding without specifying a $length, thus this reduces the functionality of mb_substr compared to substr`
stestagg at talk21 dot com
04-Aug-2006 09:42
`a sample mb_str_replace function:
function mb_str_replace($haystack, $search,$replace, $offset=0,$encoding='auto'){
$len_sch=mb_strlen($search,$encoding);
$len_rep=mb_strlen($replace,$encoding);
while (($offset=mb_strpos($haystack,$search,$offset,$encoding))!==false){
$haystack=mb_substr($haystack,0,$offset,$encoding)
.$replace
.mb_substr($haystack,$offset+$len_sch,1000,$encoding);
$offset=$offset+$len_rep;
if ($offset>mb_strlen($haystack,$encoding))break;
}
return $haystack;
}`
stestagg at talk21 dot com
04-Aug-2006 09:39
`It appears that the $offset value is a character count not a byte count. (This may seem obvious but it isn't explicitly stated)`
add a note
mb_strrchr mb_strlen

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST