【发布时间】:2011-06-01 20:57:09
【问题描述】:
选项 1(空格)
keyword keyword keyword
选项 2(换行符)
keyword
keyword
keyword
选项 3(逗号)
keyword, keyword, keyword
或者我必须使用拆分功能吗?如果有,怎么做?
【问题讨论】:
-
不,你需要使用
preg_split之类的东西,因为split实际上已被弃用。
选项 1(空格)
keyword keyword keyword
选项 2(换行符)
keyword
keyword
keyword
选项 3(逗号)
keyword, keyword, keyword
或者我必须使用拆分功能吗?如果有,怎么做?
【问题讨论】:
preg_split之类的东西,因为split实际上已被弃用。
尝试使用preg_split,但请注意,这会立即在您的所有示例中爆炸。
$parts = preg_split("/[ ,\n]/", $string);
编辑:对于您给出的第三个示例,您将获得空数组元素,因为它在逗号和空格上都被拆分。将$parts 传递到array_filter() 以去除这些内容。
【讨论】:
PREG_SPLIT_NO_EMPTY 将忽略空块。
不像preg_split那么简单,但strtok()也是一种选择
【讨论】:
此任务不需要变量分隔符或正则表达式 - 假设所有这些“关键字”都是“单词”...
代码:(Demo)
$strings=[
'keyword keyword keyword',
'keyword
keyword
keyword',
'keyword, keyword, keyword'
];
foreach($strings as $string){
var_export(str_word_count($string,1));
echo "\n";
}
输出:
array (
0 => 'keyword',
1 => 'keyword',
2 => 'keyword',
)
array (
0 => 'keyword',
1 => 'keyword',
2 => 'keyword',
)
array (
0 => 'keyword',
1 => 'keyword',
2 => 'keyword',
)
【讨论】: