I have a text string in the following format
$str= "word1 word2 word3 word4 ";
So I want to separate each word from the string. Two words are separated by a blank space How do I do that? Is there any built-in function to do that?
I have a text string in the following format
$str= "word1 word2 word3 word4 ";
So I want to separate each word from the string. Two words are separated by a blank space How do I do that? Is there any built-in function to do that?
The easiest would be to use explode
:
$words = explode(' ', $str);
But that does only accept fixed separators. split
an preg_split
do accept regular expressions so that your words can be separated by multiple spaces:
$words = split('\s+', $str);
// or
$words = preg_split('/\s+/', $str);
Now you can additionally remove leading and trailing spaces with trim
:
$words = preg_split('/\s+/', trim($str));
Pay careful attention to the fact that the OP's sample input has a trailing space on all words. So, not only are the words separated by spaces, there is also a trailing space.
To overcome this with a single, non-regex function call, use str_word_count()
with a character mask to allow the inclusion of numbers as part of valud words.
Code: (Demo)
$str = "word1 word2 word3 word4 ";
var_export(str_word_count($str, 1, '0..9'));
Output:
array (
0 => 'word1',
1 => 'word2',
2 => 'word3',
3 => 'word4',
)