Kelime veya harf sayma

Metin içerisindeki bir kelimenin kaç tane olduğunu bulmanın birden çok yöntemi var. PHP' nin bu konuda kendi içerisinde yerleşik bir metoduda bulunmakta

substr_count($haystack, $needle)

substr_count metotdu iki parametre almaktadır bunun haricindede 2 tanede opsiyonel parametresi ile toplamda 4 parametre alır.

php.net http://tr2.php.net/manual/en/function.substr-count.php adresinden daha detaylı bakabilirsiniz.

  1. parametre içerisinde arama yapmak istediğiniz karakter grubunu alır

  2. parametre saymak istediğiniz karakter katarını alır.

Örnek

<?php
    echo  substr_count($bununicinde, $bundankactanevar);
?>

php.net sitesinde aranılacak kelimenin küçük harf duyarlı olduğunu belirtiyor, bize daha farklı büyük küçük harfe duyarsız olup kelime arasında olanları dahi saydırmaya çalışırsak kendimize özel bir metod yazabiliriz.

$text = "Arama yapılacak metnin kendisi bu metin içerisinde bundanKacTaneVar ibaresin den kaçtane olduğunu hesaplayacağız.";
$search = ['bundanKacTaneVar']; //array oldugu için birden fazla kelime ekleyebilirsiniz
$countKelime = count(explode(" ", $text));
$toplamlar = array(); //hangi kelimeden kaçtane bulduğunu depolayacağımız değişken

foreach ($search as $tag) {

       $x = 0; //kalime sayacımız 
       $start = 0; //stripos metodu için $text değişkeninde aramaya başlayacağı harf sırası

       for ($i=0; $i < $countKelime; $i++) {
          if(($strt = stripos($text, $tag, $start)) !== false){//stripos büyük küçük kelime ayrımı olmadan arama yapar
              $x++;
          }else{
             break;//hiç bulamadıysa döngüye devam etmesine gerek yok döngüyü durduruyorum
          }
          $start = ($strt + 1);//misal $text değişkeninde 5. karakterte bulduysa aynısını tekrar bulmaması için değeri 1 artırarak onu atlamasını sağlıyorum
       }

       if($x > 0){
          $toplamlar[$tag] = $x; //hangi anahtar kelimenin kaçtane olduğunu depoluyoruz
       }
   }

Burda ara