bir dize bir karakter oluşumunun bir dizi bulmak için nasıl

3 Cevap

Ben bir dize bir karakter oluşum sayısını döndürmek için PHP bir işlev için arıyorum.

Bu parametreleri inputing "merhaba dünya", 'o' dönecekti 2

3 Cevap

Bir strlen() istenilen karakter ile dize ve bir str_replace() in yapabilirsiniz. Sonra strlen() Bu kesik dize olsun, lens arasındaki fark) = karakter sayısıdır

Böyle bir şey:

function count_char_occurence($haystack,$needle){
   $len = strlen($haystack);
   $len2 = strlen(str_replace($needle, '', $haystack));
   return $len - $len2;
}

bu speudo algoritması

print len("hello world")  : You get 11

a = replace("","o","hello world") : You get "hell wrld"

print len(a) : You get a 9

Sonra 11 -. = 2 9 Bu sizin karakter sayısıdır.

Bir biçimde onu da dahil olmak üzere bu verecekti:

<form action="" method=post>
Give ur String: <input type="text" name="str" value="<? echo $_POST["str"]; ?>"/>
Search What Char: <input type="text" name="x" value="<? echo $_POST["x"]; ?>"/>

<input value="submit" name="submit" type="submit"/>
</form>

<?php
if (isset($_POST['submit']))
{
echo substr_count($_POST["str"], $_POST['x'] );
}
?>