Функция mb_substr_count

Функция mb_substr_count возвращает количество вхождений подстроки в строку. В отличие от substr_count, она корректно работает с многобайтовыми кодировками (UTF-8 и другими). Первым параметром передается строка для поиска, вторым - искомая подстрока. Третий необязательный параметр задает кодировку.

Синтаксис

phpmb_substr_count(string $haystack, string $needle, ?string $encoding = null): int

Пример

Подсчитаем количество вхождений подстроки 'ab' в строку:

php<?php
  $res = mb_substr_count('abcdeabab', 'ab');
  echo $res;
?>

Результат выполнения кода:

php3

Пример

Подсчет вхождений с указанием кодировки UTF-8:

php<?php
  $res = mb_substr_count('привет мир', 'ир', 'UTF-8');
  echo $res;
?>

Результат выполнения кода:

php2

Пример

Сравнение с обычной substr_count на кириллице:

php<?php
  $str = 'тест тест';
  echo 'substr_count: ' . substr_count($str, 'те') . '<br>';
  echo 'mb_substr_count: ' . mb_substr_count($str, 'те', 'UTF-8');
?>

Результат выполнения кода:

php'substr_count: 3'
'mb_substr_count: 2'

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

  • функцию substr_count,
    которая подсчитывает вхождения подстроки без поддержки многобайтовых кодировок
  • функцию mb_strpos,
    которая ищет позицию первого вхождения подстроки