Fonction mb_substr_count

La fonction mb_substr_count retourne le nombre d'occurrences d'une sous-chaîne dans une chaîne. Contrairement à substr_count, elle fonctionne correctement avec les encodages multioctets (UTF-8 et autres). Le premier paramètre est la chaîne dans laquelle chercher, le second est la sous-chaîne recherchée. Le troisième paramètre optionnel spécifie l'encodage.

Syntaxe

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

Exemple

Comptons le nombre d'occurrences de la sous-chaîne 'ab' dans la chaîne :

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

Résultat de l'exécution du code :

php3

Exemple

Comptage des occurrences avec spécification de l'encodage UTF-8 :

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

Résultat de l'exécution du code :

php2

Exemple

Comparaison avec la fonction substr_count standard sur du cyrillique :

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

Résultat de l'exécution du code :

php'substr_count: 3'
'mb_substr_count: 2'

Voir aussi

  • la fonction substr_count,
    qui compte les occurrences d'une sous-chaîne sans prise en charge des encodages multioctets
  • la fonction mb_strpos,
    qui cherche la position de la première occurrence d'une sous-chaîne