substr_count

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_count — 副文字列の出現回数を数える

説明

substr_count(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?int $length = null
): int

substr_count() は、文字列 haystack の中での副文字列 needle の出現回数を返します。 needle は英大小文字を区別することに注意してください。

注意:

この関数は重なり合う副文字列をカウントしません。以下の例を見てください !

パラメータ

haystack

検索対象の文字列

needle

検索する副文字列

offset

開始位置のオフセット。 負の数を指定すると、文字列の末尾から数えます。

length

指定したオフセット以降に副文字列で検索する最大長。 オフセットと長さの総和が haystack の長さよりも長い場合、警告が発生します。 負の数を指定すると、haystack の末尾から数えます。

戻り値

この関数は 整数を返します。

変更履歴

バージョン 説明
8.0.0 length は、nullable になりました。
7.1.0 負の offset と length をサポートするようになりました。 length は、0 を指定しても問題ありません。

例

例1 substr_count() の例

<?php
$text 
= 'This is a test';
echo 
strlen($text); // 14

echo substr_count($text, 'is'); // 2

// 文字列は 's is a test' になっているので, 1 が表示される
echo substr_count($text, 'is', 3);

// テキストは 's i' になっているので, 0 が表示される
echo substr_count($text, 'is', 3, 3);

// 5+10 > 14 なので、警告が発生する
echo substr_count($text, 'is', 5, 10);


// 重なっている副文字列はカウントされないので、1 が表示される
$text2 = 'gcdgcdgcd';
echo 
substr_count($text2, 'gcdgcd');
?>

参考

  • count_chars() - 文字列で使用されている文字に関する情報を返す
  • strpos() - 文字列内の部分文字列が最初に現れる場所を見つける
  • substr() - 文字列の一部分を返す
  • strstr() - 文字列が最初に現れる位置を見つける

関連キーワード:  出現, 回数, substr, count, haystack, length, 関数, オフセット, int, offset