将字符串中的所有单词都添加到数组中?

时间:2013-06-26 12:35:18

标签: php html

我有一个字符串如下: is newegg.com a scam ? – fraudwatchers

当我将该字符串放入数组时,使用以下代码:

$title_word = str_word_count(“is newegg.com a scam ? – fraudwatchers”, 1);

它给了我以下结果:

  0 => string 'is' (length=2)
  1 => string 'newegg' (length=6)
  2 => string 'com' (length=3)
  3 => string 'a' (length=1)
  4 => string 'scam' (length=4)
  5 => string '-' (length=1)
  6 => string 'fraudwatchers' (length=13)

我希望一个数组元素包含整个世界“newegg.com”,另一个数组元素包含“?”你能告诉我如何通过一个例子来做到这一点。任何帮助将不胜感激。


更新: 如果我使用explode(' ', $my_text);这不能正常工作。如果我要通过一个网页的主体,它会用一个新的行为一个数组元素分配几个单词。 (我的数组中也不需要任何单词)。

3 个答案:

答案 0 :(得分:5)

据我了解您的问题,您可以尝试以下操作:

$sentence = 'is newegg.com a scam ? - fraudwatchers';
$words = explode(' ', $sentence);

一个更高级的答案 - 这个将处理所有白色字符,如标签和换行符:

$words = preg_split("/\s+/", $sentence);

如果您需要过滤掉非单词,也可以使用array_filter。请注意,这不会处理非拉丁文字。

$words = array_filter($words, function($word) { return preg_match('/^\w+$/', $word); });

对于多语言单词匹配,您可以查看Unicode character properties文章。

答案 1 :(得分:1)

你不只是意味着:

$words = explode(" ", "is newegg.com a scam ? – fraudwatchers");

答案 2 :(得分:0)

使用php explode

$array=explode(" ", $your_text);