【发布时间】:2010-12-01 15:43:47
【问题描述】:
我有一个如下格式的文本字符串 $str="word1 word2 word3 word4"
所以我想将每个单词与字符串分开。两个单词用空格分隔 我怎么做。有没有内置函数可以做到这一点?
【问题讨论】:
我有一个如下格式的文本字符串 $str="word1 word2 word3 word4"
所以我想将每个单词与字符串分开。两个单词用空格分隔 我怎么做。有没有内置函数可以做到这一点?
【问题讨论】:
最简单的方法是使用explode:
$words = explode(' ', $str);
但这仅接受固定分隔符。 split 和 preg_split 接受正则表达式,以便您的单词可以用多个空格分隔:
$words = split('\s+', $str);
// or
$words = preg_split('/\s+/', $str);
现在您还可以使用 trim 删除前导和尾随空格:
$words = preg_split('/\s+/', trim($str));
【讨论】:
$words = explode( ' ', $str );
【讨论】:
编辑:该死,Rob 更快
【讨论】:
请注意,OP 的示例输入在所有单词上都有一个尾随空格。所以,单词不仅用空格隔开,还有一个尾随空格。
要通过单个非正则表达式函数调用来解决此问题,请将 str_word_count() 与字符掩码一起使用,以允许将数字作为有价值词的一部分包含在内。
代码:(Demo)
$str = "word1 word2 word3 word4 ";
var_export(str_word_count($str, 1, '0..9'));
输出:
array (
0 => 'word1',
1 => 'word2',
2 => 'word3',
3 => 'word4',
)
【讨论】: