To count words in a php string usually we can use str_word_count but I think not always a good solution
$var ="Hello world!";
echo str_word_count($str);
print_r(str_word_count($str, 1));
-->output
   2
   Array ( [0] => Hello [1] => world ) 
$var ="The example number 2 is a bad example it will not 
count numbers  and punctuations !!";
-->output:
  14
  Array ( [0] => The [1] => example [2] => number [3] => is [4] => a
  [5] => bad [6] => example [7] => it [8] => will [9] => not 
  [10] => count [11] => numbers [12] => and [13] => punctuations ) 
Is there a good predefined function to do this properly or do I have to use preg_match() ?
Approach 1: Using str_word_count() Method: The str_word_count() method is used to counts the number of words in a string.
You can always split your string by whitespace and count the results:
$res = preg_split('/\s+/', $input);
$count = count($res);
With your string
"The example number 2 is a bad example it will not 
count numbers  and punctuations !!"
This code will produce 16.
The advantage of using this over explode(' ', $string) is that it will work on multi-line strings as well as tabs, not just spaces.  The disadvantage is that it's slower.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With