mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos Поиск позиции первого вхождения одной строки в другую

Описание

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

Ищет позицию первого вхождения одной строки string в другую строку string.

Выполняет безопасную с точки зрения многобайтных кодировок операцию strpos(), которая опирается на число символов в стоке. Первый символ стоит на позиции 0, позиция второго 1 и так далее.

Список параметров

haystack

Строка string в которой производится поиск.

needle

Строка, поиск которой производится в строке haystack. В отличие от strpos(), числовые значения не применяются в качестве порядковых номеров символов.

offset

Смещение начала поиска. Если не задан, используется 0.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает число - позицию первого вхождения строки needle в строку haystack string. Если строка needle не найдена, функция вернет FALSE.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strpos() - Возвращает позицию первого вхождения подстроки

Коментарии

It appears that the $offset value is a character count not a byte count.  (This may seem obvious but it isn't explicitly stated)
2006-08-04 12:39:43
http://php5.kiev.ua/manual/ru/function.mb-strpos.html
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;
}
2006-08-04 12:42:21
http://php5.kiev.ua/manual/ru/function.mb-strpos.html
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
2006-08-05 20:12:41
http://php5.kiev.ua/manual/ru/function.mb-strpos.html

    Поддержать сайт на родительском проекте КГБ