PHP substr_count() 関数

"Shanghai" が文字列に何回出現するかを計算します:

<?php
echo substr_count("I love Shanghai. Shanghai is the biggest city in china.","Shanghai");
?>

実行例

substr_count() 関数は子文字列が文字列に何回出現するかを計算します。

注記:部分文字列は大文字と小文字を区別します。

注記:この関数は重複する部分を数えません(例2を参照)。

注記:もし start 引数に加えて length 引数が文字列の長さを超える場合、この関数は警告を生成します(例3を参照)。

構文

substr_count(string,substring,start,length)
引数 説明
string 必須。チェックする文字列を定義します。
substring 必須。検索する文字列を定義します。
start 選択可。検索を開始する文字列の位置を定義します。
length 選択可。検索の長さを定義します。

技術的な詳細

返り値: 文字列内でサブ文字列が何回出現するかを返します。
PHP バージョン: 4+
更新履歴: PHP 5.1 で追加されました: start および length 引数。

さらに多くの例

例 1

すべての引数を使用する:

<?php
$str = "This is nice";
echo strlen($str)."<br>"; // strlen() を使用して文字列の長さを返します
echo substr_count($str,"is")."<br>"; // 「is」が文字列に何回出現するか
echo substr_count($str,"is",2)."<br>"; // 文字列が「is is nice」に縮小
echo substr_count($str,"is",3)."<br>"; // 文字列が「s is nice」に縮小
echo substr_count($str,"is",3,3)."<br>"; // 文字列が「s i」に縮小
?>

実行例

例 2

重複するサブ文字列:

<?php
$str = "abcabcab";
echo substr_count($str,"abcab"); // 重複するサブ文字列をカウントしません
?>

実行例

例 3

もし start および length 引数が文字列の長さを超える場合、この関数は警告を出力します:

<?php
echo $str = "This is nice";
substr_count($str,"is",3,9);
?>

文字列の長さが長さ値を超える場合(3 + 9 が 12 を超える場合)、警告が表示されます。