2012-03-10 18 views
1

文字列中の部分文字列の正確な数を知る方法を教えてください。正確な部分文字列をPHPの文字列に数える

$counter = substr_count($string, 'sun'); 

任意のアイデア:私は、私がやるとどうなる単語「日」私はそれが1ではなく2を返したいを検索するとき

$string = 'The sun is bright, what a beatiful sunlight'; 

:たとえば、次の文字列を考えてみ?

答えて

3
$wordCounts = array_count_values(str_word_count($string,1)); 
$sunCount = (isset($wordCounts['sun'])) ? $wordCounts['sun'] : 0; 

大文字と小文字を区別する...あなたは、大文字と小文字を区別しない場合は、あなたはおそらく、単語の境界

$sunCount = preg_match_all('/\bsun\b/i',$string); 
+0

です。 'preg_match'は最初のマッチの後に停止します。 – Josh

+0

うん、私の悪い、編集 –

+0

うまく動作します!どうもありがとう。 –

1

これは不正行為かもしれませんが、'sun'の代わりに' sun 'を検索することができます。 :)

$counter = substr_count($string, ' sun '); 
+1

これは間違っています。文字列の始めと終わりに "太陽"と "太陽"はどうですか? – izhak

+0

@izhak - ha ha。あなたはもちろん正しいのです。その場合、彼は@Mark Ba​​kerによって提供された答えで 'preg_match_all'ソリューションを使いたいでしょう。代わりに 'preg_match_all'が – jeremysawesome

0
$counter = substr_count($string, ' sun '); 

注意を使用して、正規表現を使用する必要がありますしかし、これはコンマやフルストップの隣にある単語を最初から数えないので、それはあなたを助けないかもしれません。