View Full Version : str_word_count and colons

01-21-2004, 11:53 AM
I have used the function str_word_count to split a text into words but this function will ignore colons so that a string like this

ProperName: Fred

is split into "ProperName" and "Fred"

I would like the colon included so that the result is

"ProperName:" and "Fred"

What would be a good way of doing that?

01-21-2004, 12:36 PM
I think if you use the explode function the colons will remain (although i never tested it).

$string = 'ProperName: Fred';
$string_new = explode(" ", $string);

Hope this helps

01-21-2004, 05:06 PM
The problem with explode() is that you get empty elements in the result array if the string contains words seperated by more than one space. Also, words seperated by line-breaks, tabs etc. are not distinguished either.

You can perform a split along word boundaries more precisely with preg_split:

$result = preg_split('/\s+/', $string, -1, PREG_SPLIT_NO_EMPTY);

01-22-2004, 02:45 AM
Thanks I'll try them out and see if they do what I need. The strings I have do form sentences and paragraphs. I just want each word but to include the semicolon (and only the semicolon) if it's used.

01-23-2004, 07:08 AM
Thanks to both of you for you help. Mordred you case was much what I was after. I had to delve into the ugly world of reg expr. But

$psmethod = preg_split('/[\s,.]+/', $string, -1, PREG_SPLIT_NO_EMPTY);

gave me what I was after