Jump to content

Recommended Posts

I am writing a function to count the words that have been typed into a text box. I originally had it working when I first wrote it but it was counting all of the punctuation as a word so I I tried adding some code to eliminate that. Now it is not working. Could someone help me?

 

Here is my code

function count_words($description){
	 $word_count = 0;
	 $description = trim(preg_replace("/\s+/"," ",$description));
	 $word_array = explode(" ", $description);

	 for($i=0; $i < count($word_array); $i++){
		if (preg_match("[0-9A-Za-z]", $word_array[$i])) {
			$word_count++;
		}
		return $word_count;
	}
  }

Link to comment
https://forums.phpfreaks.com/topic/258196-word-count-function/
Share on other sites

You can use str_word_count, and remove any punctuation first.

 

function count_words($description)
{
// remove punctuation
$punctuation = array('.', ',', '!', '?', ':', ';', '(', ')');	
$description = str_replace($punctuation, '', $description);

return str_word_count($description);
}

 

 

Link to comment
https://forums.phpfreaks.com/topic/258196-word-count-function/#findComment-1323513
Share on other sites

You can use str_word_count, and remove any punctuation first.

 

function count_words($description) {
// remove punctuation
$punctuation = array('.', ',', '!', '?', ':', ';', '(', ')');	
$description = str_replace($punctuation, '', $description);

return str_word_count($description);
}

 

No need to remove the punctuation, str_word_count is intelligent enough to know that punctuation is not a word.

 

echo str_word_count($description);

Link to comment
https://forums.phpfreaks.com/topic/258196-word-count-function/#findComment-1323530
Share on other sites

function count_words($description){

$word_count = 0;

                $punctuation = array('.', ',', '!', '?', ':', ';', '(', ')');

        $description = str_replace($punctuation, '', $description);

$description = trim(preg_replace("/\s+/"," ",$description));

$word_array = explode(" ", $description);

 

for($i=0; $i < count($word_array); $i++){

if (preg_match("[0-9A-Za-z]", $word_array[$i])) {

$word_count++;

}

return $word_count;

}

  }

Link to comment
https://forums.phpfreaks.com/topic/258196-word-count-function/#findComment-1323567
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.