【PHP8.x】mb_substr_count関数の使い方

作成日: 更新日:

mb_substr_count関数は、指定された文字列($haystack)の中に、特定の短い文字列($needle)が何回出現するかを数える関数です。この関数は、日本語や中国語のような、1文字が複数のバイトで表現されるマルチバイト文字列を正確に扱えるように設計されています。そのため、通常のsubstr_count関数では文字の区切りを正しく認識できない場合でも、mb_substr_count関数は文字エンコーディングを考慮して正確な出現回数を返します。

この関数は、検索対象の文字列$haystackと、検索したい部分文字列$needleを必須の引数として受け取ります。さらに、オプションとして$encoding引数に文字エンコーディング名を指定できます。この$encodingを指定しない場合、PHPの内部エンコーディング設定が自動的に使用されます。

mb_substr_count関数は、$needle$haystack内で重複しない形で出現する総数を整数値で返します。たとえば、Webサイトのコンテンツから特定のキーワードの出現頻度を調べたり、ユーザーが入力したテキストに特定の句読点がどれだけ使われているかを確認したりする際に非常に有用です。マルチバイト文字を扱うWebアプリケーションやデータ処理において、文字列の解析や検証を行う上で欠かせない基本的なツールの一つとして利用されます。

基本的な使い方

構文(syntax)

<?php

$text = "こんにちは世界、こんにちはPHP";
$search = "こんにちは";
$count = mb_substr_count($text, $search);

echo $count;

?>

引数(parameters)

string $haystack, string $needle, ?string $encoding = null

  • string $haystack: 検索対象となる文字列
  • string $needle: 検索する文字列
  • ?string $encoding = null: 文字エンコーディングを指定する文字列。省略した場合、内部文字エンコーディングが使用されます。

戻り値(return)

int

指定された文字列の中に、検索対象の文字列が何回出現するかを整数で返します。

【PHP8.x】mb_substr_count関数の使い方 | いっしー@Webエンジニア